{"_id":"react-query","_rev":"518-ebaf55f2514dafb8b663a7ca8c04429e","name":"react-query","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","dist-tags":{"latest":"3.39.3","next":"2.24.0-next.8","test":"0.3.27-test.0","release-1.x":"1.5.10","ts-next":"0.0.0","tsnext":"2.5.7-tsnext.1","beta":"4.0.0-beta.23","release-2.x":"2.26.4","alpha":"4.0.0-alpha.24"},"versions":{"0.0.1":{"name":"react-query","version":"0.0.1","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"c1ee5b962d043cfdadfbec942e861f257dff5e66","_id":"react-query@0.0.1","_shasum":"d796b3bf8c4699908a08184f755f780b93ae078f","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"d796b3bf8c4699908a08184f755f780b93ae078f","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.1.tgz","integrity":"sha512-NgINacuoJc8cWUjgk0ESDFoELcnda+W9AdhMpKzjyH+EGcFDR45P5U+8ZuKIx71MMNhDr/5HOJmEh4oO7Bmssw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVY+UjVsv+LMOqhoIXSFP7tMDXZOI/pwA27Jgp+2sl3AIhAOaeFvDP9jy4qsTIAEwDZmAlJe79fUBOioChy6xfCExL"}]},"deprecated":"Multiple critical bugfixes.","directories":{}},"0.0.2":{"name":"react-query","version":"0.0.2","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"6476dc9cfeb064a6d2b41898bd58b59a9e8adff4","_id":"react-query@0.0.2","_shasum":"ce35acfdbd59461f0567c5f01c3973c20ca68a42","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"ce35acfdbd59461f0567c5f01c3973c20ca68a42","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.2.tgz","integrity":"sha512-FNmZ/2MutNp0PgZ2VByLjyKHAXV2bn2ISKyAYvbspNJgT3umIY92r02Dht3MdltCHVjoN50O4nIEfPAuZsXH1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxPz0og7TLjzlxgbCTHpaKrSo5v1Xo0l5lfjt4YJTEVwIgHdo6g6kYCLjBQWtMZMuoNwLBOO7q4tvmCbMfKMfPA3Y="}]},"deprecated":"Multiple critical bugfixes.","directories":{}},"0.0.3":{"name":"react-query","version":"0.0.3","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"53168a0d336b3fbfb286ff93862971fd81808d7c","_id":"react-query@0.0.3","_shasum":"8cdf7d8d6211213ec712074d6696963359ff1352","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"8cdf7d8d6211213ec712074d6696963359ff1352","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.3.tgz","integrity":"sha512-sSadypgVUNY9kW4C4W9v0X3wYEiaF+BvTOzoHfgUTbaOzABnUPYocpE0Wwadje/699gyCNWkzzyO0rPLhku+sw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEyT3DmwfS4VWcVhqdxhpSxBrgm5LO/gcz7DBg48s1j2AiADpib52v6b0zEbK006nbQ4MU9TDRHszq4cR2p4FpygTw=="}]},"deprecated":"Multiple critical bugfixes.","directories":{}},"0.0.4":{"name":"react-query","version":"0.0.4","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"d1b6130634a128e07d6510ad0b4749449b50a974","_id":"react-query@0.0.4","_shasum":"3c9638ba00b8d0486dc57c94f909ae4177e3684a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"3c9638ba00b8d0486dc57c94f909ae4177e3684a","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.4.tgz","integrity":"sha512-AkIpA1n/+DK5dqAJ+TYDE3vP/rFnmoUIgIYFMqeVplmabf20rV2jrPBzSZ5OZWF8rRWqrkgu585u4QQjHx8elg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZRlaDD8OdCPCeJEvQc+eb7YrbmsIYYUyhh60LIQ8OUQIhAJ4c2fJ/9OTdgQOb/j4RRqmrgg3fd1xXpSEgMfr5k+rg"}]},"deprecated":"Multiple critical bugfixes.","directories":{}},"0.0.5":{"name":"react-query","version":"0.0.5","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"8e933c7bdf559aad27122dbdbfea632059fa915b","_id":"react-query@0.0.5","_shasum":"25421375ec27053535e123669344b74990831f4a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"25421375ec27053535e123669344b74990831f4a","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.5.tgz","integrity":"sha512-hfMSdBfvzgd7i4lh5ykNpMQM2PqWJ1fIr+soML8qfcz6ugMQaPHnbyBh/6U4A4K3NFyC04BvP/PeRYKq88Lk6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9V/9BWi0J/l2HSI7EUv8sODinmr08YL6CTXVKaouMVQIgKsOjFXpHZfeRrX55BYsB+T1tAVxtGxam+/p2jGeB5bc="}]},"deprecated":"Multiple critical bugfixes.","directories":{}},"0.0.6":{"name":"react-query","version":"0.0.6","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"71d39e5e6cbdba41ea64a02297796b5da218ed55","_id":"react-query@0.0.6","_shasum":"93f9b487d910c406afaeae642ce33e2688a96ba7","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"93f9b487d910c406afaeae642ce33e2688a96ba7","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.6.tgz","integrity":"sha512-5OyII9hSjR4kGW7xqDOwY5/1m9sZdz7022A83XnowDIzNmCMZJ115ouoaoN/SEz8HX11BZ9qJMTqy4MA4sG59g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID2T3kKf5hCRZ49/ZMDrNx6bh9N2zeAuVxcPRPdEm/yTAiEA39QYuOwb3C/9h4+a9VGsdidjMDmlgDYHstH3hb7HUZg="}]},"directories":{}},"0.0.7":{"name":"react-query","version":"0.0.7","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"gitHead":"04f36a4e3ff283653ae8d095448c72834e347f73","_id":"react-query@0.0.7","_shasum":"4798964836eae871a642c8e7ab5e3b20e37bf2fb","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"4798964836eae871a642c8e7ab5e3b20e37bf2fb","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.7.tgz","integrity":"sha512-7k4VvB5EFpajZx9n0TBEyXvuKvJlGLr0hKSBanRLl8mbI4ACU/wcuJ215V8wtyLkeDm9dNYRqfuI8DI/DyouPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4sYRx76EbJ098ayuXamadCAU417XoHn4B4EUmfUBnZwIhAPVKBXa7Ae6OHfw8JlG46KKxOiK9J6NibDYhKL40+db7"}]},"directories":{}},"0.0.8":{"name":"react-query","version":"0.0.8","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"_id":"react-query@0.0.8","_shasum":"73347f9da8177e6b3a6f224b4da51c3829a81a00","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"73347f9da8177e6b3a6f224b4da51c3829a81a00","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.8.tgz","integrity":"sha512-WkO/J9TcQFTNDpxgokdHrDJKHv6bsxkg2ypegE7ViLoV0M1z9X0aZsN5UPcQHle7MzCN493bNqWdDTsCl/fV0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWEcFmfTcPZ6YsW2WXliocMk9tw2bgG9GNZPQmM/6B+wIhAIkMZpp40nyeJ5Xla6NxKsinCeNlmUR+5VU4TzhrgLzc"}]},"directories":{}},"0.0.9":{"name":"react-query","version":"0.0.9","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"_id":"react-query@0.0.9","_shasum":"aa631d52cb8def37e74596d7eb44f3d223bf60d1","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"aa631d52cb8def37e74596d7eb44f3d223bf60d1","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.9.tgz","integrity":"sha512-M4LoVcOu2BLx2JnNjaAh35CGakioiy5wsFf/OPC8IJB3up5qrkdRV0h+4PH0Ytk5E6+SHnwnaIxAgdCokIkhQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICat/DmGTX1iP/UA8iP6RE536HOSGdth/qR3VkAM7Ej+AiEAmP7rKzaRrnotUU9bsrmQue10DTV979/42e11TX4RvIc="}]},"directories":{}},"0.0.10":{"name":"react-query","version":"0.0.10","description":"React virtual DOM querying made easy.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git://git@github.com:elierotenberg/react-query.git"},"keywords":["react","query","jquery"],"author":{"name":"Elie Rotenberg","email":"elie@rotenberg.io"},"license":"MIT","bugs":{"url":"https://github.com/elierotenberg/react-query/issues"},"homepage":"https://github.com/elierotenberg/react-query","devDependencies":{"grunt":"^0.4.5","grunt-contrib-jshint":"^0.10.0","grunt-react":"^0.9.0"},"dependencies":{"css-selector-parser":"^1.0.3","lodash":"^2.4.1","react":"^0.11.1"},"_id":"react-query@0.0.10","_shasum":"3d25b9e7408f4fdf05bddc413a0089f7d47c100d","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"elie.rotenberg","email":"elie@rotenberg.io"},"maintainers":[{"name":"elie.rotenberg","email":"elie@rotenberg.io"}],"dist":{"shasum":"3d25b9e7408f4fdf05bddc413a0089f7d47c100d","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.10.tgz","integrity":"sha512-qmLyDa4wnu24EYgzOuq0QBRY/WLzRTRXG6/zEBqJ3QCEvindrMm5d/k+fHCJVfS3YQXnBFy+9ckp2k4NZsOihw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzZwEaTZZVlaErVuf3OIJ6mCGhN/C/weSYYn+4PMeaJwIhAOQp+VKkt9FJMvLzTeRTbonMoG/NTDklsoblJO1vJhu9"}]},"directories":{}},"0.0.11":{"name":"react-query","version":"0.0.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.6.3"},"dependencies":{},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for managing, caching and syncing asynchronous and remote data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Background Refetching (stale-while-revalidate model)\n- Auto Refetch (on-window-focus, when-stale)\n- Parallel + Dependent Queries\n- Mutations\n- Multi-layer Cache + Garbage Collection\n- 3.8kb minzipped\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Don't invalidate their caches often enough or don't ship with good defaults or mechanisms to do so\n- Don't perform optimistic updates, or require setup to know when to perform them\n- Because of this ☝️, they require imperative interaction to invalidate or manage their caches\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches request responses\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Optimistically seeds new requests from stale data while fetching new dat\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Manually invalidating requests\n  - Atomically updating cached responses\n\n## Hat Tipping\n\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and it's creators for inspiring even further customizations and optimizations. You all rock!\n\n## Demos\n\n- [A contrived CodeSandbox example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/example)\n\n# Documentation\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Setup\n\nReact Query exports a necessary components called `ReactQueryProvider` that must be rendered at the root of your application like so:\n\n```js\nimport { ReactQueryProvider } from 'react-query'\n\nfunction App() {\n  return <ReactQueryProvider>{/* Your application code */}</ReactQueryProvider>\n}\n```\n\n> You can use the `ReactQueryProvider` to globally customize options across your project by passing a `config` prop to it with an object of options. See [`ReactQueryProvider`](#reactqueryprovider) for more information.\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n> Note: To aid you in your quest, if a query key is used that contains a `?` (like `todos?page=${page}&status=${status}`), you will see a gentle console warning to use the above format instead.\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depends on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this effectively, you can use the following 2 approaches:\n\n#### Conditionally passing a falsey value as a query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Using a function as a query key\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready\nconst { data: projects } = useQuery(\n  () => ready && ['projects', { userId: user.id }] // Wait for ready and user.id\n```\n\n### Caching\n\nReact Query caching is automatic and invalidates data very aggressively. It uses optimistic updates and short-term caching across similar queries to always ensure your query's data is only stored once, quickly available and kept up to date with the server.\n\nAt a glance:\n\n- Caching is automatic and aggressive by default.\n- The cache is keyed on unique `query + variables` combinations.\n- You can configure the `cacheTime` option that determines how long cache data is considered fresh before it is marked as stale\n- You can configure the `inactiveCacheTime` option that determines how long unused stale cache data is kept around before it is garbage collected\n- Stale queries are optimistically and automatically updated when new instances of that query mount or variables change\n- If stale or unused cache data that has not been garbage collected is available, it will be used as a cold-start cache for queries while they are updated.\n- Data is not normalized or stored outside of the context of its usage.\n- Caching can be turned off either globally or individually for each query\n\n> **Did You Know?** - Because React Query doesn't use document normalization in its cache (made popular with libraries like Apollo and Redux-Query), it eliminates a whole range of common issues with caching like incorrect data merges, failed cache reads/writes, and imperative maintenance of the cache.\n\nHere is a more detailed example of the caching lifecycle:\n\n- A new usage of `useQuery(fetchTodoList, { page: 1 })` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `fetchTodoList` and `{ page: 1 }` as the unique identifiers for that cache.\n  - A cache expiration is scheduled for later using the `cacheTime` option as a delay (defaults to `10 * 1000` milliseconds or `10` seconds).\n- A second instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n- `10` seconds pass since the data came in for the first instance of this query\n  - The data for these queries is marked as outdated\n- A third instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first and second instances of this query, that data is immediately returned from the cache\n  - However, since the data has been marked as outdated, a background request is made to updated the stale data\n  - Both this instance and the other first and second instances of this query get optimistically updated with the new data from the background request\n  - A new cache expiration is scheduled for later using the `cacheTime` option as a delay.\n- All 3 instances of the `useQuery(fetchTodoList, { page: 1 })` query unmount.\n  - Since there are no more active instances to this query combination, a fallback timeout is set using `inactiveCacheTime` to garbage collect the cache (defaults to `10 * 1000` milliseconds or `10` seconds).\n  - If there is an active cache expiration scheduled already, it will be used instead.\n- No more instances of `useQuery(fetchTodoList, { page: 1 })` appear within the timeout\n  - The cache for the this query is deleted and garbage collected.\n\n### Pagination\n\nIf all you need is page-based pagination, where the previous set of data is replaced with a new one, this section is not applicable to your use-case. For that, you can increment the page variable and pass it to your query via variables.\n\nHowever, if your app needs to add more data to the list along with existing one (for example, infinite loading), React Query provides you with a way to fetch additional data without deleting the current data. Let's use page-based pagination for simplicity, but assume that we want to append new todo items at the end of the list.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    ['todos', { page: 1 }],\n    fetchTodoList\n  )\n\n  const onFetchMore = () => {\n    refetch({\n      variables: { page: data.pagination.nextPage },\n      merge: (prev, next) => ({\n        ...next,\n        // Merge the new todos with the existing ones\n        todos: [...prev.todos, ...next.todos],\n      }),\n    })\n  }\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : error ? (\n    <span>Error: {error.message}</span>\n  ) : data ? (\n    <>\n      <ul>\n        {data.todos.map(todo => (\n          <li key={todo.id}>{todo.title}</li>\n        ))}\n      </ul>\n      {data.pagination.hasMore && (\n        <button disabled={isFetching} onClick={onFetchMore}>\n          {isFetching ? 'Loading more todos...' : 'Load more todos'}\n        </button>\n      )}\n    </>\n  ) : null\n}\n```\n\nTo prevent you from managing the loading state of `refetch` manually (since `isLoading` will remain false when `refetch` is called), React Query exposes an `isFetching` variable. It's the same as `isLoading`, but only reflects the state of the actual fetch operation for the query.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\n// Turn off retries for all queries\nconst config = {\n  retry: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(['todos', { page: 1 }, fetchTodoList, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n### Retry Delay with `retryDelay`\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nconst config = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `mutateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, {})\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `mutateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    mutateQuery: [['todo', { id: 5 }]],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n### Manually or Optimistically Mutating Query Data\n\nIn rare circumstances, you may want to manually update a query's response outside of a mutation. To do this, you can use the exported `mutateQuery` function:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Full replacement\nmutateQuery(['todo', { id: 5 }], newTodo)\n\n// or functional update\nmutateQuery(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually mutating a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `mutateQuery` automatically triggers a background refresh of the query after it's called to ensure it stays in sync with the original source.\n\nShould choose _not_ to refetch the query, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nmutateQuery(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n### Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n### Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n### Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\n<ReactQueryProvider config={{ refetchAllOnWindowFocus: false }}>\n  ...\n</ReactQueryProvider>\n```\n\n# API\n\n## `ReactQueryProvider`\n\n`ReactQueryProvider` is required and can optionally define defaults for all instances of `useQuery` and `useMutate` through your app:\n\n```js\n<ReactQueryProvider\n  config={{ retry, retryDelay, cachetime, invalideCacheTime }}\n>\n  ...\n</ReactQueryProvider>\n```\n\n### Options\n\nPass options to `ReactQueryProvider` by pass it a `config` prop:\n\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `cacheTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `invalidCacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n\n### Example\n\n```js\nconst config = {\n  // These are the default config options for the ReactQueryProvider\n  retry: 3,\n  retryDelay: attempt =>\n    Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n  cacheTime: 10 * 1000, // 10 seconds\n  invalidCacheTime: 10 * 1000, // 10 seconds\n}\n\nfunction App() {\n  return <ReactQueryProvider config={config}>...</ReactQueryProvider>\n}\n```\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  cacheTime,\n  retry,\n  retryDelay,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `cacheTime`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retry`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retryDelay`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(queryKey, {\n  refetchQueries,\n  updateQuery,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables)`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n## `mutateQuery`\n\n## `refetchQuery`\n\n## `refetchAllQueries`\n\n## `useIsFetching`\n","_id":"react-query@0.0.11","dist":{"shasum":"b00b8169c41b3c3169f2dbd4bd8253d736147cd7","integrity":"sha512-f0VjB5z5GaNaOhn8+ufnx454jyqlw67CNUkn55ST27D1+N660ZBnma4tVn4CeAYPqsww7xo8duv0zjhsCxre6A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.11.tgz","fileCount":9,"unpackedSize":186853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdveiECRA9TVsSAnZWagAAg7EP/0b43UMFCutIJHH6CjRk\nahjgxT/sExJf4aADi1sKtXl8VLv2Mf9hXWQj2kGbDt1boi9KsGJIuCIQUhXV\nOGIUY9hd3g2yPj0Sxd2PjQUK1CqIPqF7ZJUfT1vEQoDdpsGmwf5yRKIn6S2C\nMdztkRMEBysBkkmUNJtfpx9rY/yBsiMDcdLOUkQERY/ObHJSd4v2N226ayjc\nv1kS7UHBCmy4eXE86cKchRHz9//CciUJYdeVeVncSDwFAGVI17pXKRxS/oPt\nncVtHqImE4p3yw4xjcYvXLb3/7IbhUqJShGk3tX0WjIO8xVlRGPKcE9HWS4u\nqFo2TKvlBi5EliJqv8NwjejpuWEGcppiZb9VIJhIXr+iBV6n2i4S5EmhrbOa\ndGwjL8GoDpParz9mxYzGK23Yfk0rU5cvZ7qi545/VzREJvRzZF71tcPtLUZ5\nuUfwH0BS0mjNEVaJMwNGLjr2gYugXzEYdjaqpY9mwS+jM+JXXSr52ThFuRji\n8mxOqwPR+jqx5SC8A7JzwmiQZXGC/DX1nyCI2liGrL3LzQmPTxVvRBR0F1wd\njv31N5j9M3xE0IDgwqoL8Pw2qw2dNTc3k5G+npliyXHqYl1MXMAfwNfWjpWd\n0IGcLTD/cneD9LYtp6GY4UZtHcDCwQ0cCPthbKdl9NAJ32SlEyeBV7RjdguV\n3tpr\r\n=1AF2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwgsvgLjdnomQHHCXMDqsv4nU8WDAx8r3vrVHfX3Mc5gIgT95W8WhSpddzt16/jTImwMJVPxlqpfVsUBEd5hDMKOo="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.11_1572726916262_0.6680808843124835"},"_hasShrinkwrap":false},"0.0.12":{"name":"react-query","version":"0.0.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.6.3"},"dependencies":{},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for managing, caching and syncing asynchronous and remote data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Background Refetching (stale-while-revalidate model)\n- Auto Refetch (on-window-focus, when-stale)\n- Parallel + Dependent Queries\n- Mutations\n- Multi-layer Cache + Garbage Collection\n- 4kb (minzipped)\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Don't invalidate their caches often enough or don't ship with good defaults or mechanisms to do so\n- Don't perform optimistic updates, or require setup to know when to perform them\n- Because of this ☝️, they require imperative interaction to invalidate or manage their caches\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches request responses\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Optimistically seeds new requests from stale data while fetching new dat\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Manually invalidating requests\n  - Atomically updating cached responses\n\n## Hat Tipping\n\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and it's creators for inspiring even further customizations and optimizations. You all rock!\n\n## Demos\n\n- [A contrived CodeSandbox example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/example)\n\n# Documentation\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n> Note: To aid you in your quest, if a query key is used that contains a `?` (like `todos?page=${page}&status=${status}`), you will see a gentle console warning to use the above format instead.\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depends on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this effectively, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready\nconst { data: projects } = useQuery(\n  () => ready && ['projects', { userId: user.id }] // Wait for ready and user.id\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic and uses optimistic updates and short-term caching across similar queries to always ensure a query's data is only stored once, quickly available and kept up to date with the server.\n\nAt a glance:\n\n- Caching is automatic dand aggressive by default.\n- The cache is keyed on unique `query + variables` combinations.\n- You can configure the `cacheTime` option that determines how long cache data is considered fresh before it is marked as stale\n- You can configure the `inactiveCacheTime` option that determines how long unused stale cache data is kept around before it is garbage collected\n- Stale queries are optimistically and automatically updated when new instances of that query mount or variables change\n- If stale or unused cache data that has not been garbage collected is available, it will be used as a cold-start cache for queries while they are updated.\n- Data is not normalized or stored outside of the context of its usage.\n- Caching can be turned off either globally or individually for each query\n\n> **Did You Know?** - Because React Query doesn't use document normalization in its cache (made popular with libraries like Apollo and Redux-Query), it eliminates a whole range of common issues with caching like incorrect data merges, failed cache reads/writes, and imperative maintenance of the cache.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\n- A new usage of `useQuery(fetchTodoList, { page: 1 })` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `fetchTodoList` and `{ page: 1 }` as the unique identifiers for that cache.\n  - A cache expiration is scheduled for later using the `cacheTime` option as a delay (defaults to `10 * 1000` milliseconds or `10` seconds).\n- A second instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n- `10` seconds pass since the data came in for the first instance of this query\n  - The data for these queries is marked as outdated\n- A third instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first and second instances of this query, that data is immediately returned from the cache\n  - However, since the data has been marked as outdated, a background request is made to updated the stale data\n  - Both this instance and the other first and second instances of this query get optimistically updated with the new data from the background request\n  - A new cache expiration is scheduled for later using the `cacheTime` option as a delay.\n- All 3 instances of the `useQuery(fetchTodoList, { page: 1 })` query unmount.\n  - Since there are no more active instances to this query combination, a fallback timeout is set using `inactiveCacheTime` to garbage collect the cache (defaults to `10 * 1000` milliseconds or `10` seconds).\n  - If there is an active cache expiration scheduled already, it will be used instead.\n- No more instances of `useQuery(fetchTodoList, { page: 1 })` appear within the timeout\n  - The cache for the this query is deleted and garbage collected.\n\n</details>\n\n### Pagination\n\nIf all you need is page-based pagination, where the previous set of data is replaced with a new one, this section is not applicable to your use-case. For that, you can increment the page variable and pass it to your query via variables.\n\nHowever, if your app needs to add more data to the list along with existing one (for example, infinite loading), React Query provides you with a way to fetch additional data without deleting the current data. Let's use page-based pagination for simplicity, but assume that we want to append new todo items at the end of the list.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    ['todos', { page: 1 }],\n    fetchTodoList\n  )\n\n  const onFetchMore = () => {\n    refetch({\n      variables: { page: data.pagination.nextPage },\n      merge: (prev, next) => ({\n        ...next,\n        // Merge the new todos with the existing ones\n        todos: [...prev.todos, ...next.todos],\n      }),\n    })\n  }\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : error ? (\n    <span>Error: {error.message}</span>\n  ) : data ? (\n    <>\n      <ul>\n        {data.todos.map(todo => (\n          <li key={todo.id}>{todo.title}</li>\n        ))}\n      </ul>\n      {data.pagination.hasMore && (\n        <button disabled={isFetching} onClick={onFetchMore}>\n          {isFetching ? 'Loading more todos...' : 'Load more todos'}\n        </button>\n      )}\n    </>\n  ) : null\n}\n```\n\nTo prevent you from managing the loading state of `refetch` manually (since `isLoading` will remain false when `refetch` is called), React Query exposes an `isFetching` variable. It's the same as `isLoading`, but only reflects the state of the actual fetch operation for the query.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\n// Turn off retries for all queries\nconst config = {\n  retry: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(['todos', { page: 1 }, fetchTodoList, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n### Retry Delay with `retryDelay`\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nconst config = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `mutateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, {})\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `mutateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    mutateQuery: [['todo', { id: 5 }]],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n### Manually or Optimistically Mutating Query Data\n\nIn rare circumstances, you may want to manually update a query's response outside of a mutation. To do this, you can use the exported `mutateQuery` function:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Full replacement\nmutateQuery(['todo', { id: 5 }], newTodo)\n\n// or functional update\nmutateQuery(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually mutating a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `mutateQuery` automatically triggers a background refresh of the query after it's called to ensure it stays in sync with the original source.\n\nShould choose _not_ to refetch the query, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nmutateQuery(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n### Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n### Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n### Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\n<ReactQueryProvider config={{ refetchAllOnWindowFocus: false }}>\n  ...\n</ReactQueryProvider>\n```\n\n# API\n\n## `ReactQueryProvider`\n\n`ReactQueryProvider` is required and can optionally define defaults for all instances of `useQuery` and `useMutate` through your app:\n\n```js\n<ReactQueryProvider\n  config={{ retry, retryDelay, cachetime, invalideCacheTime }}\n>\n  ...\n</ReactQueryProvider>\n```\n\n### Options\n\nPass options to `ReactQueryProvider` by pass it a `config` prop:\n\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `cacheTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `invalidCacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n\n### Example\n\n```js\nconst config = {\n  // These are the default config options for the ReactQueryProvider\n  retry: 3,\n  retryDelay: attempt =>\n    Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n  cacheTime: 10 * 1000, // 10 seconds\n  invalidCacheTime: 10 * 1000, // 10 seconds\n}\n\nfunction App() {\n  return <ReactQueryProvider config={config}>...</ReactQueryProvider>\n}\n```\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  cacheTime,\n  retry,\n  retryDelay,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `cacheTime`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retry`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retryDelay`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(queryKey, {\n  refetchQueries,\n  updateQuery,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables)`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n## `mutateQuery`\n\n## `refetchQuery`\n\n## `refetchAllQueries`\n\n## `useIsFetching`\n","_id":"react-query@0.0.12","dist":{"shasum":"c263ba511d6fcc7a9304f66772e0295a07bad5b5","integrity":"sha512-Onkj0oUYH4KfavTfmteqdarMOZgj5IZZbNcfx8G/L5N4CCpmFH26RBQdWXE8USy+gWXdxySJDRuPjNDvUouitQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.12.tgz","fileCount":9,"unpackedSize":156925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvwqzCRA9TVsSAnZWagAApygP/RQzhjvB8LhIJawfrdCD\nSPJl+4TMzITt7QJzKjMghPERIv7xKjDkA3WcxkRKiV7Dre/alh3jkpfyBEPV\nkDPrrzZLCG8OMLeWTZM/15pjgef2gru+tyF1yTTgxvnOvNbPYskEZbQitYxh\nDxHvY7Fq5pEZN1yRvnlzoXRgs+PM/tQBv4pQjRFwd/5ftaQWZqJC5p3Y/6La\nyGs1BIDb3D7vDkd61VZ2oxWQONTw+XLv/maiyfZLhxcwB9bIzKbM1wjL/UiV\nnLk7aRKFL2eTZ8ZvGzMNn9meAKXe7BO7mo+GHI6xUzbrBHOdDT3L25mLd938\nKkw5Mhz/fXD4jw/uSrE7FLMSNWfMW6ejGNzgjJZ+rkn1eafxbRjKWtX8uYO5\norGliortl7o5VdaJafhi5qkTQm4b2mO19KRtk0o1T47XEE4ntYkfd3ftKxgV\nQw7gAm8bPGVfUhR1/LUDI61CER/1vpIPF6hB2DXFpQyga2cHzkfI8SJuhf8e\nIYl0UzDZSZ4lv6hYrkP8ePyScRSUKWd7MQ+Y/Wue3EnnTvgh0jLV0E1AHGMJ\nq4KTm0pyC3yuGWba1QmI6djn1HPycWRSJxxR3YeSjpJWwZ+puFR/hN4n7Roj\nDDEE7T/jPQKdsjQJb177T+a+/SkODVDXzFAkUTat5BYDhqg3uQDirf4r0tnU\n9dsQ\r\n=5/I4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC051n85B7VDpHYx6f/ImuKDR8j0yZb+bWL+isAKi+9RAiEAtDSxnc/xTTl8+r5VIG5ojc8aWKWGTLEs0ydIr8j5aZY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.12_1572801202901_0.2725313902845212"},"_hasShrinkwrap":false},"0.0.13":{"name":"react-query","version":"0.0.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.6.3"},"dependencies":{},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for managing, caching and syncing asynchronous and remote data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Background Refetching (stale-while-revalidate model)\n- Auto Refetch (on-window-focus, when-stale)\n- Parallel + Dependent Queries\n- Mutations\n- Multi-layer Cache + Garbage Collection\n- 4kb (minzipped)\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Don't invalidate their caches often enough or don't ship with good defaults or mechanisms to do so\n- Don't perform optimistic updates, or require setup to know when to perform them\n- Because of this ☝️, they require imperative interaction to invalidate or manage their caches\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches request responses\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Optimistically seeds new requests from stale data while fetching new dat\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Manually invalidating requests\n  - Atomically updating cached responses\n\n## Hat Tipping\n\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and it's creators for inspiring even further customizations and optimizations. You all rock!\n\n## Demos\n\n- [A contrived CodeSandbox example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/example)\n\n# Documentation\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n> Note: To aid you in your quest, if a query key is used that contains a `?` (like `todos?page=${page}&status=${status}`), you will see a gentle console warning to use the above format instead.\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depends on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this effectively, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready\nconst { data: projects } = useQuery(\n  () => ready && ['projects', { userId: user.id }] // Wait for ready and user.id\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic and uses optimistic updates and short-term caching across similar queries to always ensure a query's data is only stored once, quickly available and kept up to date with the server.\n\nAt a glance:\n\n- Caching is automatic dand aggressive by default.\n- The cache is keyed on unique `query + variables` combinations.\n- You can configure the `cacheTime` option that determines how long cache data is considered fresh before it is marked as stale\n- You can configure the `inactiveCacheTime` option that determines how long unused stale cache data is kept around before it is garbage collected\n- Stale queries are optimistically and automatically updated when new instances of that query mount or variables change\n- If stale or unused cache data that has not been garbage collected is available, it will be used as a cold-start cache for queries while they are updated.\n- Data is not normalized or stored outside of the context of its usage.\n- Caching can be turned off either globally or individually for each query\n\n> **Did You Know?** - Because React Query doesn't use document normalization in its cache (made popular with libraries like Apollo and Redux-Query), it eliminates a whole range of common issues with caching like incorrect data merges, failed cache reads/writes, and imperative maintenance of the cache.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\n- A new usage of `useQuery(fetchTodoList, { page: 1 })` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `fetchTodoList` and `{ page: 1 }` as the unique identifiers for that cache.\n  - A cache expiration is scheduled for later using the `cacheTime` option as a delay (defaults to `10 * 1000` milliseconds or `10` seconds).\n- A second instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n- `10` seconds pass since the data came in for the first instance of this query\n  - The data for these queries is marked as outdated\n- A third instance of `useQuery(fetchTodoList, { page: 1 })` mounts elsewhere\n  - Because this exact data exist in the cache from the first and second instances of this query, that data is immediately returned from the cache\n  - However, since the data has been marked as outdated, a background request is made to updated the stale data\n  - Both this instance and the other first and second instances of this query get optimistically updated with the new data from the background request\n  - A new cache expiration is scheduled for later using the `cacheTime` option as a delay.\n- All 3 instances of the `useQuery(fetchTodoList, { page: 1 })` query unmount.\n  - Since there are no more active instances to this query combination, a fallback timeout is set using `inactiveCacheTime` to garbage collect the cache (defaults to `10 * 1000` milliseconds or `10` seconds).\n  - If there is an active cache expiration scheduled already, it will be used instead.\n- No more instances of `useQuery(fetchTodoList, { page: 1 })` appear within the timeout\n  - The cache for the this query is deleted and garbage collected.\n\n</details>\n\n### Pagination\n\nIf all you need is page-based pagination, where the previous set of data is replaced with a new one, this section is not applicable to your use-case. For that, you can increment the page variable and pass it to your query via variables.\n\nHowever, if your app needs to add more data to the list along with existing one (for example, infinite loading), React Query provides you with a way to fetch additional data without deleting the current data. Let's use page-based pagination for simplicity, but assume that we want to append new todo items at the end of the list.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    ['todos', { page: 1 }],\n    fetchTodoList\n  )\n\n  const onFetchMore = () => {\n    refetch({\n      variables: { page: data.pagination.nextPage },\n      merge: (prev, next) => ({\n        ...next,\n        // Merge the new todos with the existing ones\n        todos: [...prev.todos, ...next.todos],\n      }),\n    })\n  }\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : error ? (\n    <span>Error: {error.message}</span>\n  ) : data ? (\n    <>\n      <ul>\n        {data.todos.map(todo => (\n          <li key={todo.id}>{todo.title}</li>\n        ))}\n      </ul>\n      {data.pagination.hasMore && (\n        <button disabled={isFetching} onClick={onFetchMore}>\n          {isFetching ? 'Loading more todos...' : 'Load more todos'}\n        </button>\n      )}\n    </>\n  ) : null\n}\n```\n\nTo prevent you from managing the loading state of `refetch` manually (since `isLoading` will remain false when `refetch` is called), React Query exposes an `isFetching` variable. It's the same as `isLoading`, but only reflects the state of the actual fetch operation for the query.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\n// Turn off retries for all queries\nconst config = {\n  retry: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(['todos', { page: 1 }, fetchTodoList, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n### Retry Delay with `retryDelay`\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nconst config = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryProvider config={config}>\n      <Stuff />\n    </ReactQueryProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `mutateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, {})\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `mutateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    mutateQuery: [['todo', { id: 5 }]],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n### Manually or Optimistically Mutating Query Data\n\nIn rare circumstances, you may want to manually update a query's response outside of a mutation. To do this, you can use the exported `mutateQuery` function:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Full replacement\nmutateQuery(['todo', { id: 5 }], newTodo)\n\n// or functional update\nmutateQuery(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually mutating a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `mutateQuery` automatically triggers a background refresh of the query after it's called to ensure it stays in sync with the original source.\n\nShould choose _not_ to refetch the query, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { mutateQuery } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nmutateQuery(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n### Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n### Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n### Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\n<ReactQueryProvider config={{ refetchAllOnWindowFocus: false }}>\n  ...\n</ReactQueryProvider>\n```\n\n# API\n\n## `ReactQueryProvider`\n\n`ReactQueryProvider` is required and can optionally define defaults for all instances of `useQuery` and `useMutate` through your app:\n\n```js\n<ReactQueryProvider\n  config={{ retry, retryDelay, cachetime, invalideCacheTime }}\n>\n  ...\n</ReactQueryProvider>\n```\n\n### Options\n\nPass options to `ReactQueryProvider` by pass it a `config` prop:\n\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `cacheTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `invalidCacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n\n### Example\n\n```js\nconst config = {\n  // These are the default config options for the ReactQueryProvider\n  retry: 3,\n  retryDelay: attempt =>\n    Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n  cacheTime: 10 * 1000, // 10 seconds\n  invalidCacheTime: 10 * 1000, // 10 seconds\n}\n\nfunction App() {\n  return <ReactQueryProvider config={config}>...</ReactQueryProvider>\n}\n```\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  cacheTime,\n  retry,\n  retryDelay,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `cacheTime`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retry`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n- `retryDelay`\n  - [See `ReactQueryProvider` options...](#reactqueryprovider)\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(queryKey, {\n  refetchQueries,\n  updateQuery,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables)`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n\n### Query Instance\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `useMutation`\n\n## `mutateQuery`\n\n## `refetchQuery`\n\n## `refetchAllQueries`\n\n## `useIsFetching`\n","_id":"react-query@0.0.13","dist":{"shasum":"134c70ddc91d4b0e53bfded82919498bd3366688","integrity":"sha512-IF/mFmnhT2NBf4FfTOXbxCOJZqtrFP3HjJ7OHdOBPvGYRd083/CArbmi0N0y/DrjukSvQOqSSD4mhQeuW9g17A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.13.tgz","fileCount":9,"unpackedSize":156925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvwraCRA9TVsSAnZWagAAAcUQAI5uv4i5dJGdDZUJD1yb\nmJ7XWVDfuLoxckuR1q3fy7TuDBIn/CLd9qDKLt7g44LpLXN1TJ6UAeFsxkH6\n0FqgQOOzTbQognagscrLjRho3h6uVb+sTEnZmUmN2wVu2zrwjz6dYEwfWjmm\nP8/mAlDd2ps48lAqAdFaG1uy+QF5MGUdM85jWMIuqMbg4A5SFXqvAWMrIhPC\nadjMGmZh8n/5W7ayBViFeNMKAlx0C8n7nj2szFWSl+QY13CksjIU6AoRi2c1\nlxWLAQDXeDixgooWj2ujT6q/eY4GnR0130hQcLBOVhyy0ej5sSS6xf9Gtld1\nEgS9Wvid7h64egPi/PgoiCnqzH5HKSs5/1qk+OXnldtINKZk2EzWAYVgFyUz\nVuZlJS5q+2ZrmfWuGHH+kJrqvxpRv3+zjUc0BE2cpL7fOD9xKl1OlqM1qeXE\n4BkhpUJ2CH2Kv6d8jPNBxLi1MxZQ5zHOHlgtpvknROCDLx/wB+H3HCSvArhN\nYV9BLvmTw55ClrT4yfF5S/3B05tqHK2PH2RwBV2hHC/XL7jo4kASpvT3j8bC\nEswphDxkKFt8bZ0ycFItP5Ci1ESW+8g8eKx9mdNgKf6GzTEJotJ+bbCPuBV/\nxiopip+PSF45J1z7Mlmtz4N6iVQn9J18M3vi6JJzjBzKmGRhrPZoCL+dZng0\n5mmm\r\n=BIkG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHaXG1ZLOczDI2MkxwGm26T5uEuVwpcXSTdhXNFmeOa3AiAlxWrJVoRfPayF/DTQoEz17GJ6WjNjRw9B1D42u5Z1/w=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.13_1572801242029_0.15568438879880242"},"_hasShrinkwrap":false},"0.0.14":{"name":"react-query","version":"0.0.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.6.3"},"dependencies":{},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.0.14","dist":{"shasum":"31676927a0d9d5d2103e601c68a5af67c8875312","integrity":"sha512-TQz61L5ItJpKmQeDBhji5bmhnwLOoOP8kVWJcUEmCWtm27MzY/HTD8coWmgns+DrhTNZ0FUqhZmjqf1LKg3RgQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.14.tgz","fileCount":9,"unpackedSize":160489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdv7pNCRA9TVsSAnZWagAAwBcP+gMmRXe7de0FvtQ18/s1\n/HabOUATteYs3dh8Cmoe0eG65+qfXZ/hDXS57/RcEDnEyYF4kvPZ8fA2+uC4\nCRo9L5YKGcgVnedjrYhnf7XXyANrVP4BjIaJgE3zRFbiDaZT4Pc0hiAA2IU+\nEjNqesxEoS3AJwaS6yC5/w2Tz44DELIWxdONRdazTj4P7aaVTl73hq06EbYx\nCeEWKBk3XWys9CoQECjxAR8DItv9ItxLBZ0esjoxDTKARxYlc94/ibF2vLCQ\nHE3aLexPvOaUD33G9FylMXLZQuKYfbv9/VKWjDGGP0uux+ldGW0aNrqcIdqQ\nHbBMYkzK9XT3qp3+5DS9hgl7th6rrGrRTTkk/X1EwLBoKDX4jtk95KRuNdt3\nMT9oG8I3UqNbodxYafI+c1XZjRazk1jvYgSfrr/e7VV3gXtP8/qqlPQQPHbS\n5a6kOo1ZETPJZUvUj2GA9Vs31/XcaSBjLQ5u6tHgHfLjY/6V9sxSggjMvSe1\nNZzii5TdrJ0dSbcWAHspY91Bn6nJ6bZzPgw2082Jl+kJPFSrWU+SEqtBqqqr\nIKcLZha5WrFeq0CZ4hRlW9wVHYt9Oo81xlOs9Fs36XEbxQG1IKPC+D4rFiN7\nIDpmOuGmnuU3YwXPG9ubezJyNiMr54c+JERQQh/iUYzFaOtM9ZL8qFOJ6Rbz\nLvzj\r\n=WFUu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAN7fPGpIWpogvX4gEXxZQJyxa0ptEcPgV/L+QkgXmuLAiB5aKIbeep4uNwNU2WDg+C2VoAbKB6jSAmbZ6LhtILR9w=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.14_1572846156632_0.8846855430825029"},"_hasShrinkwrap":false},"0.0.15":{"name":"react-query","version":"0.0.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.6.3"},"dependencies":{},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.0.15","dist":{"shasum":"240a700b1ecd81b14530b55723789afbe05130ae","integrity":"sha512-2AzF594nsUEhOJKVPH9V7OkBVp2rPGkvOsZyN28ufcFuZsrbCvcm6jIQYax2FMdB0VLOnXCy2QsPIYoAfJao2A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.15.tgz","fileCount":9,"unpackedSize":159631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdv7yKCRA9TVsSAnZWagAANE8QAIuDllXhGUKH3cGPo3hO\nxYvlEEBZ7wUp+Xi5ubgWejIaCs0AB7H0Q+3ltPSDVwZELRp/j9bGdzjAPGCB\nCZNLzPjsAwcGO5/EIQ+EjBf0NgIOrASMxmcZ5sZIYRAO8mrOG9eaWKD/7eSc\nvZKslexrsjEPed9jsNRUAR883qaE9AXOa0Tj+Vw4vvvGiiyTMfLMYxJSDqPG\nEw6wQ83zBCZXOAKZvDBGIteR7T1RU3fnZUNb56YOEPgukLY8GPyvD23GzyID\nzijOIU5NgXoIFOk0jT+mbr/EP3YfflFlvAYrzG9zqWzPjeZzZWpvLRzDjTXd\nDQsRUxyXJLwRu110cTIkHWheVulNechRqhy5u5MtFOLvsKyioGOikrj3CnEH\nwbIYGHqa+dDs+3jMuXwZZ7O6dw0iNUSgqUrl8E/y+7YtLRuFTjFwzmXWiGjH\nCzX0Ly3zYPzjwj3DK9vR5MfOjAYFgbLfLwACbUf6Pqq9BDUagely78C3e7kc\n0TUDuDIQll9sdoWTS0j5bxf9QdVoMlmqPpz2zvX743pfqH412SMW1iJa9sen\n6NJIrmnJmyEHB5gOtp/ecMb88v5KDgTL/Of+ISmoy4PFrCZ1e9rs8BYqsJzA\nyKKwYVNqENt096YR5r25NYk5Dg2QRk5EtgiIDWnmt6MZ38xAlxpZaQ8GZjbR\nG73s\r\n=geEz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXNmYsUi9aEjp/XoX2HnEifSw5ZUTH3wjzmvSNyIEB5AiBquG83RYoE9jbAuCNjCYJ9KLu7lJazXc0nbZo//il1KQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.15_1572846730357_0.09005964915180598"},"_hasShrinkwrap":false},"0.0.16":{"name":"react-query","version":"0.0.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.0.16","dist":{"shasum":"e1fe05e76ea2cdbe1b9ec65bd992e856127affaf","integrity":"sha512-mw8tNF+iTVFEKiMHCsbblB8u8XqEc5Yj38VgpAQnsGeNsiFoyBcsv8CfyGUf2hvd+XOU+k2MiRfzuTFmd0RjSw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.16.tgz","fileCount":9,"unpackedSize":169375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwJTiCRA9TVsSAnZWagAA+OoQAJRta/PH/c/ELOobTs9V\nt4HRiws/81cjd4mRhAQsXycBNxQeSYrLlnmIy+/9gun1/1kDgu7m8Bf4fUAJ\novnBPO2me6DH0e7oV1Ts4WQROtz5puxUsEmui5VjCkSK81s3CIH0/tW9RQMB\nMT+fvP2veGPE85KKG7JSRGv56ba68/B4T3H2swizeQopdFPtK9nVNSWd722e\n+eOjYtSad18jNL0JMzqW5FmKkTUKXW8jaCsBe71mvOxS3MDZZSDXPKyoSgkQ\nC1Csyr+t6XbBVsYObgriuGk1YT/9T25n02yhbjrgH2M6p6ZKBNFLiQ4gjtay\n1xYFv+J8jWVPqyiT78pXy32o7iwFaiLQ3Y0ZpsWng6xiBqnxFPeyqGtPolx7\n7kCRroGVd5WyTiE8sYyDC8qmybADcA+aFtYnBR5Sv1J1+H710vvLsaFQVjCS\nBnB8TJQuNPDuhh02lQ7Sywwpbwz62kqddukq6DCDvZgaAclaymSrjxZ4CJS8\nzBdwcsAK6rN0Pgb/zcg1DOC+0Ix/seHethsXVe5Do8SBHCqzQnpce7j42waz\nHaDYfLEhq7/lirrZ/u7NLRzCpMcf6yPD7i+p9p0WEQYh92gqU3KbiQjlDJ7/\ncwGfdYeiUhqdhlm7QnlPDFKRTt9/+DZRpqV8v7D1VI+ahslRK2g+AQFso8lw\nSTEH\r\n=omtg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF6FIOsL+saJR8OsK2bMIS6Cysx3kboXV9WiSqoa0WzJAiEAyZEsEmAI6WGzIaLqZ/qgBhpLnSTsd/py2EtuasZSSPU="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.16_1572902114337_0.1431144560107247"},"_hasShrinkwrap":false},"0.0.17":{"name":"react-query","version":"0.0.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.0.17","dist":{"shasum":"74d91e109ae503a4a273754f8b241e1900f4ac08","integrity":"sha512-mO9iHGKL62D2ic9hem99DzL2pOMm/Sa5pCsU0o14BJOrbjC6I6IYAqM7KPh1Pb8lPZ67HGqx2v6Yh5kkKMztGg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.17.tgz","fileCount":9,"unpackedSize":170510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwJZ5CRA9TVsSAnZWagAAUCwP+QGtNOL8yzM0E4Jn9jLI\nPZLftJL7Mh+Ui+7HYb7TzmsYwA6qQmiDUnT8biVbL8Kyd7EAM6um8kNy96I/\ncL45KBRsLRp0RWOeVPN0qQEpADS0vYa6jMkgwP442ulQ6mJedQJBoK1OLxjM\nH6JdEGp83iAVqsMcrB4+v3fI55bKgl6WZLJHIIcQEwPwr87JQrM5+xV2GIWB\nwW+YysNtOP4b15yDdeBqHSrCGH1mqfqEhlUdLu2jpEP1TpRFFnLQtaJUFJTE\n4bscKfJ7PjPG6dk2Z4C+XbUxR5AZzJ12ng4+kDDsi/VY+LpG1D9ANav6wQEh\nyxDBbWsvWCScUybjWstPFkjIa27D7fAC1jUGim0ftozeASpACZT1tFVnUVbI\n5H51wjOk9xKj6ZxCQiP43BRGyCgY8aTzM+d7wu8kp3R78kDSA22ve7zoml1u\nHtRt3LlEPS+Iu0EO0L67oS+w6i8kvXMeOelg1PpydEZZ7+uhshmhdS5UC6Mx\nbiydOFigo5xZVu37RIqzo2ksrNrbIvMlKYX4WZ/jzfAs9lF0Qk6K/hbp1i6B\nX21KcBHuuwJ9sUen8WOL2YgLsaMKwJrbEEyGSELZp76Bk6voABrAwplW16dm\nxLfGOjqKKfv+vL3vSgRbEK0naVhkXjQCzA9HP4Rk2a5xUphNyf0oxmkR1ap9\nUcMY\r\n=hQC4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1tvwCIMVfUQpToTUntfgDk40qc2sQ5w4LbYWIWrqV5AIhAKqJ7oqjDm7iWjk/9gNf3iJx01auf1emjbzj6ONX1fsc"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.17_1572902520656_0.6720814742399364"},"_hasShrinkwrap":false},"0.1.0":{"name":"react-query","version":"0.1.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.1.0","dist":{"shasum":"86aa76741fa1c249261a1fca7e91e436c09886f1","integrity":"sha512-QP6sip7+Ov+9WWe0cy0wL2S1LfH7D0UIn+7REOVnG3cV83Y9UKFdLyJ34Gd/K4W5ImdlB7V/ia9adhV2A0zJag==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.1.0.tgz","fileCount":9,"unpackedSize":170809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwJtQCRA9TVsSAnZWagAALQwP/Ay7OfrEs9Nm1d2vm7im\n9Waq/yUiATyHBx0+fEqyrx4V1BijTIL/V2xYhCX7i5g3TM0hbcu3e4fdXfQz\nM9XG2bPx3vo8gpcYoy0irrsnVxdALBkdCbXtuYWgkOR+1rqFyxEuHOR9DSSA\nORDu1zVaESPqjCpJq4R27MsAnSkaxyBGRjTq4lJGSdm2HOnbQ3R9Us2Sk6pg\n9rZ7QE8ZJjxfQCtQ5oTc1gH8QgOsgZIF0y48TKQJ5PwhACEM1DQAq1TL305D\nu1hQWuqJ+F+YgySy4NZGjpW0XMHZ1AHnpLeLOFwDgdwNal9vzRQQSMrpDg6I\nkORpEr2JlFalE+cq6grre7U0As0iCDTVSWygqbg0PWXpAi/ZH2lZYLPJzu3U\nm0b+f8kDYQsIHL+8ZqOOXAeBaEHgaJ8tP5nfwr3bqiuBiwSCVNp5AAN0BFqc\nUccOrMtiheZBAb476WdVCJGomOlUAYlznWGvqvAcHPOfaf/J01+vMSPmS6A8\nwCmCfxVBNvIWjE3WfZ5jtaRi835ymbXmIDqaU4oRJ44ftOvMmLZDLNEqDg0Z\nHjj5UKDjLDG5mssXmAbe0TyBlO9czRKK3NkHFyxP//U0hAaeZPJ7jgDe1A/8\n0po70RV4Ou8JMvge5sFcp7ZnStEpMLpLq0OHqB1Nq0aO2OzVJN3M0+aiewor\nk2At\r\n=d24h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDifmMPpW6dQoTe2c4NCZFuVTi1GQtXXASiXnYqWN/Z9AiEA3vjmgGmnslpiohXtOrESoA6CU7I19aa3Hkov+8gTFJM="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.1.0_1572903760157_0.6149797771098724"},"_hasShrinkwrap":false},"0.1.1-alpha.0":{"name":"react-query","version":"0.1.1-alpha.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Suspense Support (Coming Soon)\n- 4.1 kb (minzipped)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools] etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and it's creators for inspiring even further customizations and examples. You all rock!\n</details>\n\n## Examples\n\n- [CodeSandbox Playground](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Pagination](#pagination)\n  - [Load-More/Infinite-Scroll Pagination](#load-more-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`useReactQueryConfig`](#usereactqueryconfig)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n> Note: To aid you in your quest, if a query key is used that contains a `?` (like `todos?page=${page}&status=${status}`), you will see a gentle console warning to use the above format instead.\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depends on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this effectively, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready\nconst { data: projects } = useQuery(\n  () => ready && ['projects', { userId: user.id }] // Wait for ready and user.id\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching model across queries along with query deduping to to always ensure a query's data is only stored once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- Caching is automatic and aggressive by default.\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level)\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of the query are mounted.\n- By default query results are **always** cached **when in use**.\n- If a query is no longer being used, it becomes inactive and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level)\n- After a query is inactive for the time specified via the `cacheTime` option (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n  - Since the query is stale, it is refetched in the background automatically\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmount and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n> **Did You Know?** - Because React Query doesn't use document normalization in its cache (made popular with libraries like Apollo and Redux-Query), it eliminates a whole range of common issues with caching like incorrect data merges, failed cache reads/writes, and imperative maintenance of the cache.\n\n### Pagination\n\nIf all you need is page-based pagination, where the previous set of data is replaced with a new one, this section is not applicable to your use-case. For that, you can increment the page variable and pass it to your query via variables.\n\nHowever, if your app needs to add more data to the list along with existing one (for example, infinite loading), React Query provides you with a way to fetch additional data without deleting the current data. Let's use page-based pagination for simplicity, but assume that we want to append new todo items at the end of the list.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    ['todos', { page: 1 }],\n    fetchTodoList\n  )\n\n  const onFetchMore = () => {\n    refetch({\n      variables: { page: data.pagination.nextPage },\n      merge: (prev, next) => ({\n        ...next,\n        // Merge the new todos with the existing ones\n        todos: [...prev.todos, ...next.todos],\n      }),\n    })\n  }\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : error ? (\n    <span>Error: {error.message}</span>\n  ) : data ? (\n    <>\n      <ul>\n        {data.todos.map(todo => (\n          <li key={todo.id}>{todo.title}</li>\n        ))}\n      </ul>\n      {data.pagination.hasMore && (\n        <button disabled={isFetching} onClick={onFetchMore}>\n          {isFetching ? 'Loading more todos...' : 'Load more todos'}\n        </button>\n      )}\n    </>\n  ) : null\n}\n```\n\n### Load-More/Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0'\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3'\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6'\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request\n- Set the `paginated` option to `true`\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters)\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = data[data.length - 1]\n      // Get the last item's ID\n      const lastItemId = lastPage[lastPage.length - 1].id\n      // Fetch more with the offset ID + 1\n      await fetchMore({\n        offset: lastItemId + 1,\n      })\n    } catch {}\n  }\n\n  return isLoading ? (\n    <p>Loading...</p>\n  ) : data ? (\n    <>\n      {data.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useReactQueryConfig } from 'react-query'\n\n// Turn off retries for all queries\nuseReactQueryConfig({\n  retry: false,\n})\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { useReactQueryConfig } from 'react-query'\n\nconst config = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  useReactQueryConfig(config)\n\n  return <Stuff />\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `useReactQueryConfig`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nuseReactQueryConfig({ refetchAllOnWindowFocus: false })\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n  // with pagination mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  pagination,\n  getCanFetchMore,\n  staleTime,\n  retry,\n  retryDelay,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `pagination: Boolean`\n  - Set this to `true` to enable pagination mode\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `pagination` mode**\n  - When using `pagination` mode, this function should return `true` if there is more data than can be fetched.\n- `staleTime`\n  - [See `useReactQueryConfig` options...](#usereactqueryconfig)\n- `retry`\n  - [See `useReactQueryConfig` options...](#usereactqueryconfig)\n- `retryDelay`\n  - [See `useReactQueryConfig` options...](#usereactqueryconfig)\n\n### Returns\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `pagination` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `pagination` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function)\n- `fetchMore: Function(variables) => Promise`\n  - If using `pagination` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched\n  - Must be an array of query keys, eg. `['todos', ['todo', { id: 5 }], 'reminders']`\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `variables: any`\n  - Optional\n  - The variables object to pass tot he `mutationFn`\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations is done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function for imperatively triggering a refetch of either:\n\n- A group of queries\n- A single query\n\nBy default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (eg. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (eg. `['todos', { status: 'done' }]` will only refetch queries with that exact key)\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (eg. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`)\n- `force: Boolean`\n  - Optional\n  - Set this to true to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of it's value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns true if any query in your application is loading for fetching in the background (useful for app-wide loading indicators)\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background\n\n## `useReactQueryConfig`\n\n`useReactQueryConfig` is optional and can be used to define defaults for all instances of `useQuery` through your app:\n\n```js\nimport { useReactQueryConfig } from 'react-query'\n\nuseReactQueryConfig({\n  retry,\n  retryDelay,\n  staleTime,\n  invalidCacheTime,\n})\n```\n\n### Options\n\nPass options to `useReactQueryConfig` by pass it a `config` prop:\n\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `invalidCacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n\n### Returns\n\nThis hook does not return anything\n\n### Example\n\n```js\nconst config = {\n  // These are the default config options for the useReactQueryConfig\n  retry: 3,\n  retryDelay: attempt =>\n    Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000),\n  staleTime: 10 * 1000, // 10 seconds\n  invalidCacheTime: 10 * 1000, // 10 seconds\n}\n\nfunction App() {\n  useReactQueryConfig({\n    retry: 4\n  })\n\n  return </>\n}\n```\n","_id":"react-query@0.1.1-alpha.0","dist":{"shasum":"7be7d29251e0539a4c1a8693c01d0f9aa802848d","integrity":"sha512-fODQUU0AA/p0SpaHDL41SjmMBUvVzjJP8XpxZfRljU/vizd3OdVGaLcQ1Gn9yVHnzbjwbJ0t6HsUA6Gdq/GDCg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.1.1-alpha.0.tgz","fileCount":9,"unpackedSize":174299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwLeVCRA9TVsSAnZWagAAs1EP/01RDn3DdmjDNE3fd9Fv\nVq7gaWmIDdLnwVWeOrmdPNcEONPf+rS9qBFvUeyIAWeEcNYLHCF4Gp7tCg2O\nojjQeK09bRe7JPSdsMcc4rXQk3LmoALxM1ZlYU0f5nszYcdUsM0+5q1+gFZk\nPfzRgb+fmWVjYwMuDWPufriNRbtLwGK7adHjfYN9fGaxO+/283575DZgMrWr\nJu4BQZxaxLHJzTlA4yIL5EZ3OJzZxwzeZ53bwm4cYec6lr6Wng1myFUsQWJO\nrBI61CeP55v/EVheNE/kBd4/fVVb3KAM9KbPYqPc1Pr//JYI855aHg67fyQX\nqlGMTW+Xd7GHOXvtvSJ1AWmnHlwVNJVpbBa8y401TrRmWYwM4/4GH+qCujCQ\nDQZReJP349/eaxZWUF7/sf3A3/UPQqW+o6hRAjOu3CSHIginU1oqvxjnrj9m\n+kiWtCgGkcyrgvDSZQW35VntsgZ+p5PHVhe18LZVSB5RCHcerMgt8duhDOfE\no2elOyilvvSftaHiJ6VZ/iSsCOaCU2Je8COCTkEbZ0rrvBKULp14jBn3zH4Y\nkl+3CZ97rrAC3TSIdFis6IaIu9L9JFOebWuI42aID53laecOwDUZUtvKw05l\n9aKonXhStomyjzIih4oPw1UQiM7wIJeNxcn2scxaiXmEnHy1Bb2h/1ro7e9q\nFhIo\r\n=dere\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhH/XrWeUeTbM4wNvmyDw1GQKw0wr3L0xSD2XFVa5LNQIgehrPnAPPbdFH6woIZbYqSohueSG63sGx6Lqmlk/LCBY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.1.1-alpha.0_1572910996958_0.19045383583107678"},"_hasShrinkwrap":false},"0.2.0":{"name":"react-query","version":"0.2.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"_id":"react-query@0.2.0","dist":{"shasum":"b2da4ca93efebbd69083b5984f9afadd60df399e","integrity":"sha512-PJSxtkHtYmWlJDDhuODKrr3wV1EGYnYP2Ezuf7B3D2BCMJ93wCU3QvLyhFzHWWve4XZf62iPM2IuDskbdVp51w==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.2.0.tgz","fileCount":9,"unpackedSize":177001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwQhFCRA9TVsSAnZWagAA5LoP/3f3nuWtmo+C6QTLud59\nGw6aBz91hyA4NocR9E1fXK2qAwNpSKn1XUcX0eVReRj8gNK4Gkc5DJAz7216\nucAtoKIGYnbYE1D56Kw/5sz4fJneeHw8+EUBsKm65w23CXMfSq7arPQJVQnd\nXi1zU6VGEmmi4K2hSWqpNdbtZSRF7/1Dqj8RkgiPd6LI5ZKwIRV24LiWyyRc\nm4/nsho6kytrrhf+8lBupOHD6xcVuTCw6XRgjOnwbnHeYDuMOrJymP/Z0ko1\nU1DfPUmjQVBwWYKWrv+a59cuZ3wo24av6O0svOQY0kSQmrRfSVoUv9KSk+ye\nB9l+3e3Cd+yBnkxilI2r1l3GP8QzUw9heAt9g3eHmftvlREOrAYnvH0G6IYb\nFjXMgMIRMES7jjXb0PQc50qVIWAvz0yJbI5n9W7eniIT3yyk3e4qk2W2RYB0\nrcVVInHGOmk34JACUhxiF/Od2NXpnhPRa3jwot82uxb7gocrvvjPO2+5lryb\ndv+5HSRb5D22UohlugkMNJqT4/skh8P2suzK9RJczgb0X/KKS1oEMJh3fTAt\nCxZOvigtjUiNL3Q2wyecK6GnnwZx2gye9TbuUOTrX3IplsGLu2BI7eVKNxge\npyfYrpwfgEW27+P3sVPdWpuE1MrkDtlpy+Sdb0lp436comJNfnxNUwj/Sjym\n3XBZ\r\n=86Lj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBeFmSqM071eeLzx54yJ9TFLMHljfhiTj3LIUGh6i9HuAiEAy47dHeDJF0gehytFaQWiMGn27LI+H313ja4TmG9QDQg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.2.0_1572931652275_0.969142086628265"},"_hasShrinkwrap":false},"0.2.1":{"name":"react-query","version":"0.2.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.2.1","dist":{"shasum":"90efa10625b3c3e8c580d047d03c7d11a7a27bf4","integrity":"sha512-clkH0uRi3hQvNiyw/FZrYHvnm26i6Ael1buW3PCWVQy3cWxHj45+hQ/SIBOrjf5XfAuu2P9igiGyVFfa5A5qYg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.2.1.tgz","fileCount":9,"unpackedSize":175225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwZwYCRA9TVsSAnZWagAA79IP/1hXY0lIQfkdowwwEnkG\nxvHLAWpETH9gNz90oXSG8gsYR1a+DVVvayHFcpgEglGxrVPOZKr/9jjnirvQ\nNJj7Kikpzx30iqHFULJ104qxaEd0I4vLtf/FfDM+UrTK2Wd8BWczZrm7+2c2\n++TkFVn1MzRjq57NDlk7QWEran9GFmcC98qFksCk9Vw394Sn+radA21FitJo\nG9K1kaIDeSd52gKhYJPyqriU2kGyifxFgGE9OPRp6R3cwekLt1cu19vQVSpD\no2Mhq1GIhdDODHW/dWVGKkSwJ2CSK1PRlqiTgJadK1qECc1TD/eow2SkbElF\nMRFEFX7hUC5h+JN7KWK2L29kkqQsv3Lx6aY8lOj8/eu/fyg8Wqr04rOEvxlE\nRMyUr8n++TqyKxGU1KAn02oFQp91Q7V6vUc35+MrxBW2UuAdw0KI3naaX+9T\neC0p8C3q2KdqYA01dheD5WZlTlOW7WpqNdIEZpQ4obdnVeoNcLJfznxCBsJQ\nrAAcqXxMRBzitqAJ/yaeDos3hfe7Vnuq17za8FCzBfu7Hmkcx+MH8ewx5xpj\nJr/38acwGgQ7IzGkxZG479dToHRbRivke9VtKgyVvIY4FEgbNpZVo4BRIaM8\nseVL1FKq9QiPGmJfhDwYvPK8k2bCgw1ohNDKW6TKRBKtSeBzfReJTet2uG3i\nx3Sh\r\n=NtNM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzV78cf2z+pZApqwmlGf4TiGU+Nx+dALheHoj0xzCKTwIgRp69Osz1LjDNG/t1hyojTGxikDRCXsEXRbk4U2e503I="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.2.1_1572969495968_0.15799063328411345"},"_hasShrinkwrap":false},"0.3.0":{"name":"react-query","version":"0.3.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.0","dist":{"shasum":"3e7a6a110911be972aeaec22498eaa09c0234624","integrity":"sha512-mYvlcLMRepwWSr2QDQrhXW8KJU556OHwo6mXM2JmMTcZiPr+XCHzVkJ41bXfl0DQkew6zsw0Do5y0QPHppwr/w==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.0.tgz","fileCount":10,"unpackedSize":187124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwuS+CRA9TVsSAnZWagAAXPoP/2++JLBNO/pg5+gPlWyk\noV7gn2BxehZuX3zBaAT3cVH/klyk+mqLFtxJEp7I99K7FxDXbo7mjrGN+P3b\ndO644k+uECYeatfZXOb29zqh0CtTVLSCBuhdwqROAWJoSkBEVL3mHp7hJ3fi\nWc4Tj5cB7HePWnQUI4OSQ68fD5AKzcD/2EPKo75uIQvf+/o6LLDJQ1fHj6sv\nrmyYS0m+utHRI+/+tkR/CdY+l4wBbT3fGcDX4KIW/FFDQyr58PcSA1xmK0Yy\ng911LsHgoZ326Gk9Bqu3BEdvbIdyH6ZnxcZGCEMCXTXDZqzRbmpHx1AavKyi\n3J/n08KcNPKUliQ5FxuO3U1XEdRXrJZF5jAgjrGZH0kAbFQLbU4rHCUrJ+OD\n9XL+ym8wlRgyy/FHbv3JgiLvu1Girlu5nmWpKKcHhORsaZVu7ppnGy2XtJuY\ntvQc+T9mVqa17j+6S6c7kW/WM/FsUyTixFmT9YsYEWTGfIEfjoFsbOQGEy2p\nFgvnlwAc0crjUPae41XOhNEUWUkeS+uuF9iBY7UfIsDtzrinfrIiHY4/CYWl\nDXa70/zzgqbHpJh+9pNcnSyWoC0sFt2UN68mCWwJlkva5Xfnvx3rGUWxLZ66\nwPh1Th2KSmeQZYfOhSQk2JYHeb/neiL0BHPNqUCOfv/ZNptzySYb4qvzthER\nuIcf\r\n=ctn0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE1x8UzFehL7THmRTPmC60Buz+rvasj5DElS5ECOO6PvAiEAyHopmeq/n2DoR+xfsMKL7vmWvMG54CN238+3GPZbSSs="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.0_1573053629958_0.9807568114276215"},"_hasShrinkwrap":false},"0.3.1-alpha.0":{"name":"react-query","version":"0.3.1-alpha.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools] etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li><a href=\"\"><a></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Suspense Mode](#suspense-mode)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level)\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n  - Since the query is stale, it is refetched in the background automatically\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmount and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0'\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3'\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6'\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request\n- Set the `paginated` option to `true`\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters)\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = data[data.length - 1]\n      // Get the last item's ID\n      const lastItemId = lastPage[lastPage.length - 1].id\n      // Fetch more with the offset ID + 1\n      await fetchMore({\n        offset: lastItemId + 1,\n      })\n    } catch {}\n  }\n\n  return isLoading ? (\n    <p>Loading...</p>\n  ) : data ? (\n    <>\n      {data.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `isLoading` and `error` states will be replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors. Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables\n  - It must be stable and deterministic and should not change if the variables of the query change\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId = functionSerializerMap.get(queryFn) || (() => {\n    const id = Date.now()\n    functionSerializerMap.set(queryFn, id)\n    return id\n  })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`,\n\n  return [\n    queryHash,\n    queryGroupId,\n    variablesHash,\n    variables,\n  ]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple) ? functionTuple : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5}])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n  // with pagination mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  pagination,\n  getCanFetchMore,\n  staleTime,\n  retry,\n  retryDelay,\n  suspense,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `pagination: Boolean`\n  - Set this to `true` to enable pagination mode\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `pagination` mode**\n  - When using `pagination` mode, this function should return `true` if there is more data than can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `isLoading` would normally be `true`\n  - When `true`, `useQuery` will throw runtime errors when `error` would normally be truthy\n\n### Returns\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `pagination` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `pagination` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function)\n- `fetchMore: Function(variables) => Promise`\n  - If using `pagination` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched\n  - Must be an array of query keys, eg. `['todos', ['todo', { id: 5 }], 'reminders']`\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `variables: any`\n  - Optional\n  - The variables object to pass tot he `mutationFn`\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations is done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function for imperatively triggering a refetch of either:\n\n- A group of queries\n- A single query\n\nBy default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (eg. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (eg. `['todos', { status: 'done' }]` will only refetch queries with that exact key)\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (eg. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`)\n- `force: Boolean`\n  - Optional\n  - Set this to true to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of it's value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns true if any query in your application is loading for fetching in the background (useful for app-wide loading indicators)\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see the [`useQuery` hook](#usequery).\n","_id":"react-query@0.3.1-alpha.0","dist":{"shasum":"d3187745defb87ede857509b3c29b2b7f29fddbc","integrity":"sha512-zeq3G1nCQPUM6VK5zDq9b8UTiah41zIIhI4efPttYVClWQ2bxeEX0bBvoQh/6DREzSlKktFNx2Az2NmrU14mlQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.1-alpha.0.tgz","fileCount":10,"unpackedSize":196072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdw1muCRA9TVsSAnZWagAA5DoQAJYH+mzLb9AbqjnKsdds\n0Etx1FhWVHU3Swayoc7i6o8GTXnNs+sXoYQoZ9yXjxeZVPO67rIXzSBCZyvZ\nYqTWeqMvGXwU0TYwkS0Twu1/LhAD0rPkihxQ8aW4NsM2b7d3nxPiChbvfgn5\nduZljJZMncTcRPYTRTjjQ/GoJdCFwgHUnoP3u8Y5z4oQepsguPqiTU6kzhH5\ntvKCq3gKK3CgqvkUsDtKMaduBH6iV5CDLHkQKI86ghcb9BDUNO2isjKeh55d\nPqHlzcHyTdOuT0d4s1S80iSO2ufUXuKxcFR3YtbXwFjbxBX4fAmHMQYZ5Lkc\n6MLP/2l2zO+bt2cP6OuPwqezUE+SqzjD0/Lg7SEKIbeYfUFrkO8YUQdtusmg\nMo8cKMEK6dVF0tNhN+0NPf56tlKo2Ivsa3Jh+Bohy28xx6ZmCu07ccGDaak4\n338uzWqDHst6n8eoIItKcUOjdGCTw5xt3NYv5zRP55NF6vO7Z/eNq9gurYqL\n4vQJSEQFM+TEseX5izPnDIw/Q7PE0VMz1lxtzIkIjCxYPm70XrPLhO0IDZ8A\npgShN7jiJdbQnDdbpR2sSj6KSVijqNj/opOXOPFHryPQm/y4XOH8ve7OAsKX\no9u84OnONsxa2lGwtxIGHZeDHNPq/FOImXHmKij3HcBMXUwaC1A18xpiUmYR\nQZIl\r\n=NGh3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxoCLtgalDPUIIlFt+1kQkdBvknEHCPH9J01FIqh27jgIgX+PlLjYkTu9UE3XksLueSu4/K3rZVw6PiD59KbjNk/k="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.1-alpha.0_1573083565248_0.7384176060191667"},"_hasShrinkwrap":false},"0.3.1-alpha.1":{"name":"react-query","version":"0.3.1-alpha.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools] etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li><a href=\"\"><a></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Suspense Mode](#suspense-mode)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variables in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen.\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level)\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache\n  - Since the query is stale, it is refetched in the background automatically\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmount and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0'\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3'\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6'\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request\n- Set the `paginated` option to `true`\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters)\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => next.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = data[data.length - 1]\n      // Get the last item's ID\n      const lastItemId = lastPage[lastPage.length - 1].id\n      // Fetch more with the offset ID + 1\n      await fetchMore({\n        offset: lastItemId + 1,\n      })\n    } catch {}\n  }\n\n  return isLoading ? (\n    <p>Loading...</p>\n  ) : data ? (\n    <>\n      {data.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `useRefetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `isLoading` and `error` states will be replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors. Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nmutate(newTodo, { refetchQueries: ['todos', 'reminders'], })\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }, fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', { status: 'done' }]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nmutate(newTodo, { refetchQueries: [['todos', false]] })\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with it's original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables\n  - It must be stable and deterministic and should not change if the variables of the query change\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId = functionSerializerMap.get(queryFn) || (() => {\n    const id = Date.now()\n    functionSerializerMap.set(queryFn, id)\n    return id\n  })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`,\n\n  return [\n    queryHash,\n    queryGroupId,\n    variablesHash,\n    variables,\n  ]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple) ? functionTuple : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5}])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n  // with pagination mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  pagination,\n  getCanFetchMore,\n  staleTime,\n  retry,\n  retryDelay,\n  suspense,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`)\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported\n    - The order of object keys is sorted to be stable before being serialized into the query key\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the refetch method's `variables` option `refetch({ variables })`\n  - Must return a promise that will either resolves data or throws an error.\n- `pagination: Boolean`\n  - Set this to `true` to enable pagination mode\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `pagination` mode**\n  - When using `pagination` mode, this function should return `true` if there is more data than can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default\n  - If `true`, failed queries will retry infinitely\n  - If set to an `Int`, eg. `3`, failed queries will retry until the failed query count meets that number\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `isLoading` would normally be `true`\n  - When `true`, `useQuery` will throw runtime errors when `error` would normally be truthy\n\n### Returns\n\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls)\n  - Supports custom data merging (useful for \"fetch more\" calls)\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `pagination` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `pagination` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function)\n- `fetchMore: Function(variables) => Promise`\n  - If using `pagination` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched\n  - Must be an array of query keys, eg. `['todos', ['todo', { id: 5 }], 'reminders']`\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `variables: any`\n  - Optional\n  - The variables object to pass tot he `mutationFn`\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations is done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function for imperatively triggering a refetch of either:\n\n- A group of queries\n- A single query\n\nBy default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (eg. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (eg. `['todos', { status: 'done' }]` will only refetch queries with that exact key)\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (eg. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`)\n- `force: Boolean`\n  - Optional\n  - Set this to true to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of it's value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns true if any query in your application is loading for fetching in the background (useful for app-wide loading indicators)\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see the [`useQuery` hook](#usequery).\n","_id":"react-query@0.3.1-alpha.1","dist":{"shasum":"e33077f4a339c361f10d8442040fefe6ea341824","integrity":"sha512-3bBW4wTHbXmoGZJ+qQ26rfd9SkvwvIQNebk8lcjkeqGuBqpgnKyoTErf48eDDaeAmh+45qE89CHxao8BI+ml3A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.1-alpha.1.tgz","fileCount":10,"unpackedSize":193934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdw2JDCRA9TVsSAnZWagAA0pUQAInDdOLR/ujkCEYltGwt\nNMG/x4i4JOICWihSxT0dd5Eiv9qC7nXoIbNHbDoZacwC61gV07t8kBOu6BCs\nXCkN29XbrofHrL1XLLOwmR9je+m61bAzJYoxeB1hF0hJt0gcd3OXF+b1vfUR\n6a1BgSx25IqKgat91Wc5Q/ajT4fE6OBjzJJ6CforlY/8ds8YIsoegDpU1h7T\nBohjv1B80qnkNFoRg/KjjZ2FYT4vbXZD/7H5K2OMp3kUDot3m+WRZuR/2+cy\nnMfVP051xhIjThrytIlVC6/yhxE8k56uwUsWHgehPmHribyWiCBZWIxtnX6Z\nXMKy2esfxUPZWs2l9gwTifxrQnDdd5VnP8L9zkWnIhGmsnlF2cGsgAXoa7+G\nD5zKGM98GsQug7nNhcy+d/VoDQEBnAeAL3FDSj+JkKMyn/l0b876aBCptGV+\n8c4uPb0HNL0PKBhzI2Aq9GrY1S8lT4/BNtlFVHfFopBia3cYXbyOCOHiyViV\nD/6OwQUfE326h4LuvtUj6m8x1La0fKF6T5awkQHX5sRLnF5hnpdzCg/B7uc9\nRFQRmxwSMEkCpQSObWs1s+TlcuvBsKWuhpEqQ+hi6dTV6V7y8ouHmrrSHe4R\nYMkkAf/9+vKf0zrruDLWxHPz9BauE1voe116oCDqomCZBM1OyJly8yUPk157\nklge\r\n=Fdi3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/ESh/kpViWvEF0A5Rg/XPisDDo/cYP/AZSaOz3YfxmAiAiFZnVYR2OkYk8Gwxt1OE0lfSwyqYix8X0iXxEg0/u8Q=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.1-alpha.1_1573085762708_0.28470329006527817"},"_hasShrinkwrap":false},"0.3.1":{"name":"react-query","version":"0.3.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.1","dist":{"shasum":"e917567db094fd06b4372e55b999c4823f08492c","integrity":"sha512-G9gyx4WR0lZR3qgeFubccWQutZuIg3tERhioJrcXYWinyVsLz0uwkRHA+1lZvxm2Y+iKwHKR+GELRjvwDczCqw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.1.tgz","fileCount":10,"unpackedSize":197187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxEgGCRA9TVsSAnZWagAAzb8P/iFa1v5NmK45z42PT+PK\nYOv30yk3145oM/pUZnFg1g2SS6bGeLd/UR++1OeIZfukeBR2ObeStSvrzs69\nsRWiCiBHpDViqHc2ouGoZ4lGvmWQ73fMoqmxdhQAM3SfPT/n/5tPPTuIxTlD\nCap6BkyAGPqp8xbijoa9G3XV5ufeY4essIqn1CM+xK4DW3Z6m5umD5s3RRax\nQjY87NtD83MD3+GaCmyQtjwtE/gOYOcHKBn+qzV6WDZryjjqTTnc9B3tx5J7\nD7CjsgAdQCIYBLVD9GoD2BDcKpIjxDcTP0fFFEn86gbJ296TqG9Ua9FPtjz0\n/InLMB2r12fT5Jm6Zk2S5386fCYwKeEzl8yqKTibHjesj798V3aZb9fHfRf5\n51dqYId8Lqw5xGJa+hchsU2L4im2EjmKNTlElVsrQSUWs/Gpzn9VuXi2yLLc\nhI3/5i4WDstKR94bQSKUnFtuX+GLyb++7ZDX7irgANVyGqGfTE35co3SLmiF\n5yOd7P3Y1tmIesPnoJC0BOhxAkB/bKO1+ZU54mIuG0gE3a+7+PckViEQHbhh\nopqVdq89QF/Py+0VdQAYVFOS+i5dd4r54+hyYIM4B5tLsPBE5/fXXPhRR+XJ\neMzLhhloK3jR52bGooxSxrFHbAGmhHWz2R2/5SflMwlkwkDMvdTeoA6LzMgP\nLHqe\r\n=AjYo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTH61RybnARq9kZREH2zo7lAH5X+u6j9du5VZCHB9mdwIhALluDBM9p27CcgPdadO57HCWq24yyJVGfx/3Gd0ZBcwe"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.1_1573144581653_0.49108716921414075"},"_hasShrinkwrap":false},"0.3.2":{"name":"react-query","version":"0.3.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.2","dist":{"shasum":"9d75bff2f2df2d8bbc70bea5c9b19ddc146f59ba","integrity":"sha512-+ZPE+iMMO228FD1Vd2CjRS7rom87lZzpo/vaKCx4yVIIUtGH9IlusfDe0yELvZDTNWA0ZCVIe1KmRLFUUts5JQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.2.tgz","fileCount":10,"unpackedSize":201399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxG4BCRA9TVsSAnZWagAAgJcP/3FOzpFLV2S9j+a8tT4t\nksZroGSJRBqaPp8zFDbhJw7BMgeQc3mBxoqXOvY/HXjZgqw968aU5+s7e7my\nfb9b4yQ09n46wdJOJuQ0EqEANgOluAauaOOkIkuyKBDGecUPMsEq+6+mW+a9\nWEO+h1NldIfkmP524rCsSECX0XB/OTHuJK4+mcYv0Mw7pGWOBOYjznpJ+jh0\ndy1AUz7vsLElg5Q/QmyOUpL1kTkXEMyKVeKf79FKm6eWkPGJIFXACp4bnZQN\npk1mce7C1dHE7fSVUt58gJIXFcJfHJ544JKs5ryzr/ipjXcC/5AisQae33qh\ntsUnGnmmT8nUX2BnBVAPSiXtWJiYtPG9aS7DLjzvLjOyTSlG6efmVOgoEdE7\n4uhMV8yw6vTQ38xtc5anRar5v/eVYIKk+lTWrOaNf64+eJ5X5EJ92hyjqQdQ\ni2bBSo7JaB5kKQXcG8sImuouSgIzTVHAgXxQRu59VaK3PJQXDg0CaDpImBLe\nFZX9GiW4q+3LpjJxlLWUqKBgguCudgPeyyI+T1GM3LuCjXeO50CjLCyBqv3W\nh3dYKb/SO5XHGlTjoea4eKQHhyyced//IZCsXCS1LKEYsDf+N5MXT7qkMqJc\n1HT5v0eURWERV2nv0vBbWZRpIFflr3B9hVjgL4hackstIoRBhlFIUQIzi5hL\nUCIR\r\n=DNle\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8L9CSx7Uyj0HOix/RDRqbhnqNsjWcAc0H437+DDffdgIgJ+TZmyxs74QctMypJxwUuU4342GO4YLUvmfKoEBKjF4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.2_1573154304606_0.9995644870798506"},"_hasShrinkwrap":false},"0.3.3":{"name":"react-query","version":"0.3.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.3","dist":{"shasum":"fa6a4dce9ba1453d0ebccb3775c5f3e1ef91251c","integrity":"sha512-O4pjF/wWnxXTVyJgjYswIbsGRyvq4rIsl0ddAtMzd/k5IlN0ceEH34n4vXx1iQw26epJip1xcY25YcYXcb5+9w==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.3.tgz","fileCount":10,"unpackedSize":201633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxG8DCRA9TVsSAnZWagAAFTgP/3fvCtmjWkBxjOgsRf30\nlTj6h1W8MFGwJ6X4hfABHl+phA2R3HTZVn50AV+0fDyKxR2In6Ck8q3nuMrL\nl8G20f8UTD1Zm5zJr6iRy+enCcd3YBIQ04KSxMG6ji7Q9aQOoJf3cB5Yv+ZK\n7Gt9Hw7mcM2VQNfC+htsmhWpNOS/1+J+SqzggKJrk1Pq1JEcMhTGHEt0y9JA\nSVfMg7WV2TDu1T7K++5E4bIpoLuOF1UGFrEiOP3Olf3OdG27/TJuz0kIubez\n7n1DVkZvSQpgJepRMW5btDh9zUPahQJC81eTaTBLXBQk7UmVsbwyfngTJGdb\nPSB22YmDn3tcN4toZl2hYuZTMiQved+fxJctK6IAdz6P8mL6zqNUo90N8GL+\nQI4+2UrW/cibCmHFfKOe36t+5MYeec3wNZWpek7aJCsun+7uTih4SXSnRF7G\n42sVs64oR4E/wVMvHQTk7pJdd4Ge047VBz6LDXJtmtkM3sQXfdU++mHTRzY1\nFkQGvRkZE06nn504lHZRtsC6saADhjfuPjk6R5GddLxNpzVaPOz9aSc546s/\nr4qs5ocbDDxu0tcCfzgz+ZZev7G4o7M27rxeX7ITNE38EUrlM9Et9mzd9wt9\nvE7V0xRjHLlzwdXU0fJlM92mkusqJUrBIxKX1KJG/Ot9+BwOrXWyLhWYvYfd\nGo+E\r\n=3TZR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8SHW7XpqVGWV17ZvCq/G1jk0yNrggl4aO1EyZY0Py6AiEAxx4N7SrArtWII6LXYcJV9JT+fiv61ap5M7vK8K9I4Wg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.3_1573154562876_0.4355171233635635"},"_hasShrinkwrap":false},"0.3.4":{"name":"react-query","version":"0.3.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.4","dist":{"shasum":"dd677e3e15160852dbe9a0e227e2d5804c05e548","integrity":"sha512-BSjlGOjiCpT8ZJHdtoUDsTNNOdCWgibwwB7ioaJpnt59vTVVBqYTZOK0ZHuoVFOmN1ANY+zeipjZftjhxVu2wA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.4.tgz","fileCount":10,"unpackedSize":201838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxG9lCRA9TVsSAnZWagAAqukP/2pEblYjQVeWTAIodVYR\nTrpvMvW/j9mfyE1tx8Ve5dIzrLSfbDOdCTLlPLU99scSx9xebA/Gcqn7R1bv\npYFcjDPwVO+NVS9Ifvz9sMJDtzvDj84y78JSLzqsMyMRVLZpTFu76ayaLbps\ncs9RPzlU9UvQFAEcj5E/QgSO/8ZkRatihXyopxfUHB8DMvMwDZeMiuOMjGK5\nlz+B2oqqQAjq3yLlghFlS/V+KdNPyKMeq4k/ZQtnfb+KspNfDn6rRFltfNIt\nwvxGEaF9GwFEV6tYhy+JllxiIDyjTsobjWaPmuL/KpqizBK2Wv7Ud8jPbObL\nCkg0yeSCVh0nS4ns0mmByswKgslZ5CrMU/jiR19U1A7vEyOEKKiySR1O7MRw\nXqQDqcRCNiU4QNQESDOJDOkIpG6b+E/GPlbOZEPsodtRiFK4oKqrmbqR7KqI\n/ncpQhu/SVlctMiA8qChXWgvEzTX/pmZ+0FLiPAczZuwVdlfHkdqkAGQA/G5\noyNLuTDELGd+t3IFn8yywIW7KHxjXMS4FL4BzCttVHi4Mhe0FAepKktzAeXD\nPBhxppcIGBZpXilTUmf/j+MR78ceWEQuYhaQuDxmyOwyByp/BPVLXFuKW8NL\n/mMeMggqz4Qu772Bz4SlXrh6LgWjpNyoaowZppAxZ5abirChtRz0VvWxRY82\nqXmN\r\n=DPDy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzAlDcMd/hZu5LTsng2iPUnlXyj4iPeZiYdTXVPPDy0AiEAqWTqPDOsd5V2OX4U6ls4rf4Uoeoxnbs0RgHJSHsBe7k="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.4_1573154660730_0.42885303671060493"},"_hasShrinkwrap":false},"0.3.5":{"name":"react-query","version":"0.3.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.5","dist":{"shasum":"7907ea3380abd9b3299b4388dafe6f4a774569b8","integrity":"sha512-XDiWkf2LUOzndzyXIggPcp9npIFXGOgz1RRQzIbAEAOd8cwEjhol59H3ak/AziEi9WpbThJ1Nqrzcc4EzvnykA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.5.tgz","fileCount":10,"unpackedSize":204423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxYkECRA9TVsSAnZWagAAfaQQAIX/ZidETiIIinFYYX0F\nkYoWGRW0B6clX9iACLvhTbTi6YbbouO8ewnQTy/7h+E4nJFYnIMc3KXr1IdA\n0SMUAeDfBtY+k1bfIbP1fPT164pR5buLs4/mbq5cYkmH+DOcs7l6xB6pzScm\n6onw5+shbHFhM2LRoASMl0yLB9KCcrkEPUAw0eQ7C9JWlRbfqszpM2Dkq3+G\n3B6tUZKa5VjqDAd1P1fhDYSig+UVg3V4HZ7rBaYoJJlgJ7/VIZ6dk60VybJ/\nwaiDFJlzfVMgd6bbJnc7oYQGgWV95cb+Wkclo0OP7LR53JxdXdnZYbhSkfb+\ntEc0Map41FwJDfnyvWH2oVLhlyfFzsPqcUwwQ+nHUIGqIlbtPTjJ1g1ozayJ\nkjd3gL+cTHTmXKSD7zqBH4t0rpQ9xNmnrX6UlTCOWvwG6QDSH916PKTlUOPo\nnYGIVqGl4izah6JJsJWE1PfrDMFozTOhoz5CzyMfbrHLN3W3c4A01B8t9un8\ntLwBJatQKXwWq24rISSnBZbbhMAFnF69A97pyevGeHVzKspHMPF3/5+a//i/\nm4X/gVQb+JX2W58vH0o89brMgbAjMzx50wg0JrH8XXY58zD5vxB5vOL3p0Vw\nRxX4ftJVtn/ZVbrjs9xyYe6d3tv1Thy3miTq76Pbq01ITeNe2yhMNCTjgf73\nRWNy\r\n=Dye3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+oJsydnELIGtJgM3PO8DdBpElIUuyhuS4lUXfGanVyAiAwc5ty4Cy0uuUiT0oC/d6Iu/MTfvbVaewTEugQhFTqLw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.5_1573226754928_0.23452825739699268"},"_hasShrinkwrap":false},"0.3.6":{"name":"react-query","version":"0.3.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.6","dist":{"shasum":"2210705a3dd2e3de4fabb54a60c309edc44c51c9","integrity":"sha512-3RgeWCra976MadgT8W/g3Ds6BwDkvy0suaN/gmnndjwwvfw0SlIru7k4oC4EXep9n5mpBCS1+FbAZB7878kp7A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.6.tgz","fileCount":10,"unpackedSize":204249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxaq3CRA9TVsSAnZWagAAiJYQAI/8NqypZwbmVmVxTC4e\npPMMqEDrTeZvl7Pddc6elppXBSojxai+CGj/FaUGp2G1GAZbMyf3Lc7mC+c9\nqF4LfVdLrb2pSmVogLxbot55E659Zu7S7nl6oWvcJV+DF+iIZ6IvmxS5lk4i\nQVY1L7oHyTpFSzdpsB/pQi+ogGWEYQhDHm7UjKelIgoKsHiowzBwWitW1YX0\n//p/ALYjrZZ4O32sBMaJBO89nBuoxCGw8mquc2v4wZf5Z0RBJ1Muy0cBFxgY\np7X3tAEZro6hn5KE2Ftx44sFuL0vUG7hs0DtXNjNtDmX4Ryi7ZzC8bnG+8+c\nKCWj9IyjXchURnGgFwgmNk1rJ7XJoAvl0r5JXfibuKAIT0/056BnXa2VXArW\nRTPWP6Nepz+lPT8mi7AAs5XzIUEAQb28nZgtRt7v3YRQV/a0rUOksx11namQ\n2Q63fmnE4jaoNbKHcXWvpZevy8Id/JxCTPwkDGRD0grZhDry6TXH9Ly87CnF\nMqFjL1IX9YZE0ELLPokrq7Vi7PEqg3xcluPCi8lQP4PQHRXuZ/mS8H0MbmFP\nt3nQURfKH8urO1Hy/O+1rsI/6IiTaTnnHMWh5w+eyNdb5uqWtBzJ27VEoSsK\nYMYbkn5VoFrI2oKu84YhKAehZ2trjqCStmiGfWMSosAhSYTVY+bwny01NFRT\nA0i1\r\n=jSPx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6LZIlVDOkGkYMVVqQ7NdHDQIqEN4IM2cTnIwWrU2zfAIhALPQ1LrQuleqQ+IrAhoZyq80B7Ebf4TT9EjDmm4otEub"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.6_1573235382591_0.07021432988286413"},"_hasShrinkwrap":false},"0.3.7":{"name":"react-query","version":"0.3.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"_id":"react-query@0.3.7","dist":{"shasum":"2b6a8b8d24db8ce1cce0bd4399767fa3a1663bf5","integrity":"sha512-0BkNhNZ1dAOVPnMOaJYuQW2OkUM5cB++Hp4UGhwDpIgsWxMm08f6fN2LmiBNi/BCOBnpsC/tSWqD+jLAEmuacA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.7.tgz","fileCount":10,"unpackedSize":206016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyZY8CRA9TVsSAnZWagAAd1cP/25eB/bIoatUZVCa0JL1\nGg0riUsqJ4J8iVE77nuPc1uqegY2+uqSVuh/benspys2S/N2WIpG+WwZ854c\nsOqyJcQModS1u2ZXh4doNgEEkKhhYflprkqfOqKBtsvWcWR9ltt/ZOTRCtkM\nZOdhb5kqQfej7WdE4eqobDuHM9T1xr3eS1ISx9Co53U9Y1k3vpZfVC5u0q0E\n8xC4x0PoIayMLCTQAHPznC4KLH9I8ZiTM34PIO0pJR5CWC/y9Z6nXNZ6PFwo\nXhcygmHxYJtbJ0kFQoOJx+3NTr8uvHv4ATtCqNSar/C48nxTgQ7Qcpsorqvo\nJHCeh0E1XEXjgg773gipSQ164d1T9bp2XGkpJFOBUZvWKjIxkdmqWi0Ng642\ngZYBt7Fv2tLHguZiEHNSJ6HNGe/nzuhIAJli1MkZkruKvnPKjtGDgugBP0kX\nStUaWS0x9/fQKdehABmJqbqbm+b+Yb/5vgv7+2cSzi1gwihbd4rulZOHFMAp\nyCS2XmB+0oSd6rvlHM3PNGjb3CyeC67DpEGaC1cutR5JYVGQEQtI+/zGZFLA\nbCJxAnN+PgtCkgJg8PW9ewFwnN+rJl80wwlqB3Vcpts/3eumMjLuyP8S+aeh\nf3caPz/YxdJQe+hEHA4bSHvypDonK9mCMKg+3GZltHVwEzb5nV8TfbaWn8v4\n2z20\r\n=RiOi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNg6dfexncJNWxBUISeuM/uqsJ6LSq6HN2XiqHA/ZVbwIhAKM79HVrahtB9I5t88nm46PurjcoZqflLlY9MGvVtd93"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.7_1573492284347_0.44936907821303596"},"_hasShrinkwrap":false},"0.3.8":{"name":"react-query","version":"0.3.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.8","dist":{"shasum":"876ef611843113cf320270ac01641434f4404e22","integrity":"sha512-DsmhSy6koIOpt4fJ+6ZMPDpSQTctXxRWOE84irGP7mWVtrAnYMpUHNmzKq4FhalBkzGmOzv+39pIi78a8BGxIw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.8.tgz","fileCount":11,"unpackedSize":206182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyZaNCRA9TVsSAnZWagAAGlwP/2dKxLWB3eLaZU9jUpRF\nsbnkmozqadeoODufSYEjXRaLox0SBcyUKEJFbyrwbiOwZnNFW9tQntxcLSU0\nA4tEPQFlf+cr1l+IBxocBVy2U/6ZWawi0iU8fbOb8BfO28eR/1Yixxub0hLy\nuaXJOaW/P8x6ZKnaDY+Ob3Et+z6tZmVfCJtr3nZZ10DrqRUVd+9JHbkDOApx\n4GF4sTCQfSVZ4SfMAEz1GzWQmloQG63nd/HNyUA3UhRB3FxWUby9axuonumJ\n9gl6YBHVkycxSQmnIM7ohvQqS2hIFCavzYKRMis+8U7em0iRdH3X/92J9raj\nphvgnh8MEEtMqOx3/WI3HV1y0MkPlmjizCJlO0cTZM8zucLcGq1xJHbq2iOF\nOxwFJIMTutLY6IuhaQgUfVdVWb0y3Wgo4glECYJoZR5VyrLIqWyXJyYKEgtF\nUyVbh5NFAfF8YoRDgHzQARtHfWgTcuVnZhlocHDgYZA42+P9h2nyLsv1APMf\nvTq7jIyZQbk7ApLWMPhiSZaCI7CL7Jte0ePATQjNiPRF6Nx8p7jbhvGoo4VF\nISTU1oL8kB8pcq27KB1/QgJyx71L0kk5k0KUtKtVF7981aUsXq4pV2a7hAWO\nbjFLd1gFTXVZSbI4VBFusu2xjf7Aw+2Qf4ubuJFtdSQuEQDeMashMqSKdtpE\n3x1F\r\n=juTq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgeLE4zmvSq0/DQ8tRMoWo+Iev+H2wD15urZwALTM/SAiBjmJIJjkNAYrPtKv2+ZstJa5EjqPjBei4LQQJ2LNL+rg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.8_1573492364723_0.2215406682804224"},"_hasShrinkwrap":false},"0.3.9":{"name":"react-query","version":"0.3.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.9","dist":{"shasum":"88a1a168c3e24c5da59bafd15c43a4a1d0389d72","integrity":"sha512-aUxYeox1BYcuEFFWTS4PiIraEHlg3olSxDW3O9cSp6iLW/yHjKld2woH8cnJcbpPhIRqplgj5LvqhW2IPp3oLg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.9.tgz","fileCount":11,"unpackedSize":206050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzD2fCRA9TVsSAnZWagAAtCgP/3CLdyup19BX74I1g7tL\nMnvEkecSejq9y4AoxZqITJ90pDDMa+JcqLOZoRr39znaPVk6NiYkYfJDqwHQ\nlnmjw10Y/IAwH8Me37jVcNJxGxKWAVkMU/ZbNCyZ4OxtP1xdUUZ+nKK2Bz84\nIVucT1v3QJN69+GdhPbhORKtqP3QJ5pY6T6wZzGwX6hC+RjPfPTnJe1DDIH0\nK15fRmV8OWm4CP7QPue3d31M8Zogxq9UpXyVTOEcHBa2U4VJBWEmrMmzyKSS\nJpOvOSineRPfYwnoE5/+giAtzeahRYTekA2ZmJBYFmdaIRkPCNPBuPwm2332\nqVdiXN2qNchd0ylndkGR+9yS5M/tshwzF6DnBnnye8x20mQ4KGg2H8ABihim\nKTHn/EDykiKH9CceJMeIpHVRvBdUU+ZaE9qUrUOtelFlcgmir7LYKVnf+4qy\nWS+r+uTVGoGbdsSqI38CjfFx09mZrlnA/LCvjb3OHaQlbjBjjM80mWl8+3xF\n71wYmd8bjCkLS+HkxUDltBTIfWVdA4xyM/yFJ3sDXQuyBeTF54y09HrkX3gE\nFpdLzJP+TvUrGiqOwUCO7Yoh42ppu8jtCMCpHX8WnOvJK6XiwSKBdL03Lltb\nE64zjt/JpLOkfEDeORz1kOMf5vjLi2xglJC8Lfxiw70c68U/d8sq91XY0f1E\nrFhu\r\n=BoaD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP88mMiS66kY3qHQuX6nGYnfK3K+5bIOLvu3F8xALzpgIgVnCBqOcs7xT2KkWliXg3/Fq2yK4Wk58pCsRlDDAJnLA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.9_1573666206810_0.9092174534942741"},"_hasShrinkwrap":false},"0.3.10":{"name":"react-query","version":"0.3.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.10","dist":{"shasum":"ccc3382ab3928cc815293fb0c2dea8e87bcdb8bd","integrity":"sha512-CGLWbgkOtFLPPqpm6YOKq0xXYiOmHz6glHkvGyFW0bUsP1sw4/ctJRkA3x2SOBMV6pOv7f76BOtgogL85FunOQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.10.tgz","fileCount":11,"unpackedSize":206295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzGyLCRA9TVsSAnZWagAAQtYP/jgkAibis6ywOYsULFnI\nmujBUZP1/em6XburDXWO2rCIEiyfjII9451ovzPeaZMcKxqIHKCvVVXib+Wn\n9Fis5VeA6Psj8oAd0P1UsTg2llEYN4n2BmGM9t/p44zwhRGGu2DCzyQ3AHl5\nRaXX+is0kE0YmYbY8kwy/rkcRltUu2bn9G5tx72r4uXs8GcOW4V3sIYmYzY/\nN7+ZE2rWBt3dac9AGcSMSAQcXvJTAqZJGR2DJVJz5nhtZ6wf7rQOdnJAKsBs\nRMkwgRlR8ZLqho4nJ7K4ctOrQ2eBhknfwjZNNoC/xG5uWqnlnqgTRu1UWiMm\nJmbwW0QTbn/CauRVYfdUQYmZi5BVpaZgI8lxekR58M36K0JCxlBu0jLVtv+I\nfjwCJjF5tXdhJ5sPmtmwcyPba0xFCk432oOIokLh7h9ZJIepnrEkpGJ1wj0O\n9HtjLcumW+MERZpwbQsH5lc6+Q7W3chtyep1018/KyE0zY2eIMk8YiBb67nk\nLP+zCqhTs61o5CyKWzC2FUf1a+BGv8lmVhOPawJuMVc0xJFp5Co+fIfgpJoS\nUAnomb4+wQzxZxAmbOfYCryLFVzX21eIfM79SUf3z9jchO2ZYD7z9pmxLjUG\nKI05o7JoQC55z4+6LxQLz1DJWAAVZD65o00EvguwDmQ8V9CY+GI0HCy5U06p\nf5nz\r\n=VeH8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGx7kcZam0x02Q+kj7XLJ1TthJFgJRjPjs+rW5duBxTRAiApv2OgKwhja+bifA7DebXnyUCEQt+ULZHFPGDTWNl+dA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.10_1573678218591_0.433195237591099"},"_hasShrinkwrap":false},"0.3.11":{"name":"react-query","version":"0.3.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/plugin-transform-regenerator":"^7.4.5","@types/react-query":"^0.3.0","core-js":"3","fast-async":"^6.3.8"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.11","dist":{"shasum":"68634c1e459d7ce02fa474cb55807b41cb972e4e","integrity":"sha512-o+wckyag069YvajMUpaO9gjy4lNZmtBydQzS/Vqsd86WOs74AcXT0HaKcRvz/aVC3IeO6JOlEBW6cK18QhaxXw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.11.tgz","fileCount":11,"unpackedSize":206408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzHcvCRA9TVsSAnZWagAAe/4P/iTsDV2lRWToO1U6j3SF\nJ1ku3pCl/AiANpOPDnQ+LLAVY3HdcagSnqXihUAa1ons5cvfQGNoBOvTAAQO\n3GYAZU7s5u58gkq7DejlfxxQniUFO969f1G0FzI+5QvSoZL/BV4WOoG/7zJG\n4trJY6KG1znzdtFNymXt5T0GRsvyWfU6B/3/xiRZFCHxs9Hhn6LxP2nVXMrd\nbQkpJ72PL1LM6A7SMXl8+C8enbROIvZR4CiU/bi0aiam6hBoTWxvGP4wosml\n0VqcUBTjZemsXuf7xfHmMmrbmEHij2sSZgvD1RfMTDtp7ZqclYg/4COPWj5i\nPk3EvRf6UbWNpfxNPGfzwgIo9Btx4HvcB4OHYq9MFmo0sg1vX0jB/yz/UppO\nG78LiHEcmA5dAyMlaWnsgglCZJqLVlt5PImYZ0oh25wfoLCt3Wh1ZhuA1+Kd\n8TDFbAqz7xnBNQHWqh8ACqy3Ioll+npj621XgnvqDEOlPn6xqfFyDVHCcHhd\nhUtPRCgbaicMftAXTmKpysEirq/MvdjyFsqDxwctcElEPTJAI2TUluvdfYtQ\nSDUgy0ByJzJXEdhLrjgdNme39huPyOkSXsr+yXf1R4EkhI6bKRIrhayUrSh9\nYWz01qpftW8W7M0GeNvp3nKAwhZH6Ve/95M/i+ZHYjx5UXGmw+B+7+P1U/xN\nobga\r\n=8YYE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcvR2+OYfQfjBDT/JdoaFOczrwtt0J3kROW+FMHE+kPAiEAoUljLYHv24S7jZiTNN3c/Zjri9OXE/3CxyH4bChEcxE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.11_1573680942808_0.1877408453072813"},"_hasShrinkwrap":false},"0.3.12":{"name":"react-query","version":"0.3.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.12","dist":{"shasum":"259ae4b7033f9a6d181991f24820158a3441a050","integrity":"sha512-VwiCKdF/OIpylwRaRD/WGIptRxXjO3IIbkcytqMvxno8vsQfNPmREGgbyJJXHT2q75WWgaU/wB43OJj57WRytg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.12.tgz","fileCount":11,"unpackedSize":206354,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzHeSCRA9TVsSAnZWagAAKSQP/iLQUiEzmTFag0EYGC9J\nkyXeteCZWuUwylIPaB/xPXNovXOdr+z9+z7D97+UCgM++j/6t2S48yxMTHCL\nUWDrDXpe6GF1/f2camuCmKBVUjGLzJ0tYRyIlyAZZe/dVMktF6kEQmOP50dA\nYzMreWQfs98Iy3gT+XCvl2BqBApMKdmvNG4QSyrDWYnIjsEFBw0p4/UZIKqI\nMbNqkV0cVK2b7p1hhWLWmXBuz9rzY8AOCzGsNUMJdeL28IUM7T2h0Y8BxtIp\nmYexKueznAA3XgdTLl+StIgMcLMx+AHaLqlVZjgAiuabEkm8fgxc4yQDAaPC\n83uVFO4USp7OlqUsj5fSlJQG5L30ejH+e+BYbqGMJpC6voEOJ67mYzDKv7Dh\n/+/QxZ/c/RE86Xoh2lAivhPrybX8mS7meu81sDEzWQYRSOgqXcIZPA7oTG7Q\nw4fzrj8sxR6wXlbbpAY8EWQn7mkwclk/mA1t45ErKwKTk/x3rbMn0bfjfkyd\nsxfajBKKLO4P9hZSRiOqleayiyq2/7rwqb6pqBa38Ntw9z9cRIGd9aOclG/z\nXOeAkpoYgioyXc327r8KFeZxA4uxjPP2js5pZQRNhHHIeAc03l348lHPfOjL\nE/niDXF5/yaMGKdkW8j9MtJPUhX0cRW6kwzzbnXkffLllSizQ43bpAIvi05Z\n9z2L\r\n=cBXo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDn1tBw0K9hzK7WxEdecqygzLE3Dmmhj27i92RXXTZmVQIgLTpSbudEIXbf0SyGlED3gY8hEJYKwDSwigeXBeWzfq8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.12_1573681041545_0.7165788609377128"},"_hasShrinkwrap":false},"0.3.13":{"name":"react-query","version":"0.3.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.13","dist":{"shasum":"e249889391c0d7c8817f1f8048bdc7297c7de494","integrity":"sha512-Cn5Ic73FyQicMDWffpSgeD0Ltt28Otd9RyAiGof+6pDDDd7b9SiPyHHuDKBFL4L+0ap9UN+rRjpCdi0eXDDqKw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.13.tgz","fileCount":11,"unpackedSize":207152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzwCHCRA9TVsSAnZWagAA+a4QAIf00WNepge5R8cvRcTM\nlATagchKydGvWq4ESmfL78WZT+BZoRvZAYz5yleiNNIrdvb4cRFhJYx0fnog\nkid4OGQu6hJ+Xb9WNGfcWfrxV9Be7QlBoKdteUX5N3zDgkF3PG3eb5bR2Mn9\nJXQOL2y4n026J0CUsFlBsF/STAVP3I20yvm6qokBnR4bZvNK+efOAQbX+AqF\nSf2ahoNwCi7O8mvq2dXaNiBHEvP5HvmIXv8g82f6UicO3rPNIvepZLfxffzv\nmygJb7b50ZFFIXDHamSKpKgoAE5EPUTXPh8Txozmq1lIhTncsuWOoE9l+RYz\nyuf3IcDpzqU1SBSps6hWl4nQ739O1r8l0xm49GLfxK8vmo6oHdG54vi+gJA5\nV4cEw1hvS/ZxaSpf93KGxbTAB5XAPlWsaPy02YPNbY8NSRh0f1aLnMk2N7Hl\n9qGyzZWUhRtHMPqaUA7kHeI4vMqTlb33pTL1Th3GNL7JhBRIOJpPpyxxoiWl\njELnUhwgQ20YaE+8n0lp2MkqADILWB697YVooMudK5uGaxrm+5H9pHsNRtSu\n+gal8jw47JrLqkoAEYelrwjvIupA7WX5e20IjAVs8cvnd69OuqgWqA5267vO\nfG3eCRFGCI86OQV/JuoiVKBVcKFji+zH5W4RHgXPjViCcQB8Z1y+OLFIN5yy\nQECe\r\n=GAzL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0QH1MG1m2u5I3eOaatPiLkeouZzAwJGG0dSb8rwtfDAIgd5F7M1QwvNo2G6JmzNZ9gK5fgFbx4IMqsLOzb08Qmck="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.13_1573847174533_0.3612265663866534"},"_hasShrinkwrap":false},"0.3.14":{"name":"react-query","version":"0.3.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.14","dist":{"shasum":"10a8765a994d0a891bf3ec9b3ac122ac57e36b15","integrity":"sha512-oCqNrgbF9X4kYoXcfh5+Smz11AWCHJHUkAlwtCdCVpKRqzQcG5nBiCE7tIsT9VXqDVOAuTAuIX5nsEB8R9rDCg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.14.tgz","fileCount":11,"unpackedSize":209797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1G2nCRA9TVsSAnZWagAAQ7YQAKMYQXF8wg8BD9M8Ft/z\nkEU/sROHrIXBCh22YSK29bjcHCcOR+a/kSK4+yUDA/zBxEA4VS1oj8pTzQ8t\nf1Q9CA3e4AwlfoUFRTwbmdl38+SV5f9tK0icOscDWmRXO4HOpZZCwKtw+1t7\nG/6NWx5dRin2zokxee5DShLAQz10jgVI/SV7rd9UbIaaGdtMjNJpbnYQq4zQ\neyZzpFmQZ/jIuhLVQ8zEZV72xWhI09yFZC90yCQi16cmtTPbUjxsqfjGCOcm\nYLKIFVW5lFTR5B4sPNh6zmr6VeXlwM4IF4yS9c/MkJJKfHPOYEi1a3LXBcsE\nD9dem5bye3EJMcDZehy+SjxUINwvARFY3h5Iy1zRcTVqiOqQyGiLofDmkIa3\nw+gmDNQNlPOOeAu0I1qets0Ovm79eJdZwUdn3VdzxWiF1FfSdcI4UN7zZFuU\nZtPM7Ej6ziUjoIgRW4zetEi6UsQor8CfBpopxd5lAyf+2nLv0RmpR86tK3xK\nK9WKs3ztjHUmu966savWwXVU1PbYJQ2Qw+Lp48QJQnM5PXDXxETOrH2XCxzG\nPHYbffSpitBu5ZNc03/JWzk4CIopyRAabruDa62M/dIqD8pGKMTvUY/E0Zv9\nM8MCCMyyl20Oi3gUVCeYQkNS66rjnFFmr5h4IPe10a2rRDWCqWFmj9TPr1Oi\nxVvI\r\n=HuNz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDxidG2R9qcJNdx0G5YrZ5mW9Yj5dLqdvWiNrfJD7S6AIgUcZ+cGCyFtJwbsojOu9hHUbhjrAsWV6aOY+ea7jPDOQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.14_1574202790886_0.5223539697175439"},"_hasShrinkwrap":false},"0.3.15":{"name":"react-query","version":"0.3.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.15","dist":{"shasum":"023e27bef1cc53daaeda3d2a01290809abff8374","integrity":"sha512-FhS66AtdQ63GIgH9UPQSVdHkmcbFzbvm5zKhG9vg3+me6MqG5VHX6lE3y8hovEG2IXsNUw7zPT0qb5LUAlS9xg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.15.tgz","fileCount":11,"unpackedSize":210464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1ZLHCRA9TVsSAnZWagAAB9YP/iFOhijA3xB9oiJ19B8/\n34THD8R0KEb30pAJLsWQ/j/2WHSrTM0XbQgniSUq7MlYHa1Kx9ZemUNvoDYZ\nTM5aWDEnk1RJb1gFRKk1lwfRHGUWkfef9fPzhClNELxVT1KUBVW5HRTFGO9n\ngG5/q9/iItyYjXwDNThFrF+rTFcEXkTLqUx+VDy/L7jJO+pWQmnh1hQgbN25\n08F3Af+LksQ6RqwY2qLXuFWME97rZvxKrrl7aTRHnnhtKgVv0g86lcgmiG6x\nM14OY+M8Yml5CCZ0nUGvQ9eMG8om6etZnOwsLmhl1LauoE9svGXLONUiocdd\nuSqJGYnYejCZqrorzt5MPZpnEFYXEZsIL+XfOMvhSIjeSboPV9bbimZcCggK\ntfuHF5GQ/G66Mt1z6UFPWs0YsYv2B7inICZsgX4ET14faXjNKOyD2aI1GTpv\nJuz9N0QQi1ZWfonWS6miMrjlmylrVOEYNGyLLygU2SMlzs56ua5Y2mIneXTG\n1q2SZVLa6mQFp/MIQshkYfH/Jmoy32giWfKBYmkTGurgXWjcDj5RjlLJ9fBq\nxUw5WFtmuS2q52bCYetBKcHX0JMRHnBgoDgY/+yJDJKqiA/ajY+eWCc5vi4Z\n8RItboaoq4Q4UuF4djgQV2EoyS2iWsBhl9gMLeH7DlTk8fZZA4ThLTOUG2sf\nzHEi\r\n=iIjm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAIZ3Xf1ceNJ2dbpm64eDBVkvhIuRsw90fMHkH9h+I/1AiAk7AHFX6WwtljaR1TBb5P+HFn9mWExQDgz2dK6omtCBA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.15_1574277830965_0.8632894787587495"},"_hasShrinkwrap":false},"0.3.16":{"name":"react-query","version":"0.3.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.16","dist":{"shasum":"4f2cd0bcaf622ff538cf37cf9bccdf05f8076629","integrity":"sha512-z/bRrZojcMZIihU2qNlhjosebHb/LbZP3ZvX1VxDRY2KUPP7yGC+KciHIOCMZzSTl7VhGAECr3jhoxjVAclvtg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.16.tgz","fileCount":11,"unpackedSize":195650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3ACaCRA9TVsSAnZWagAAV5AQAITK3/8lWCw0qLJA5KZX\nEHwTNdc/F1Q4+/TRdbJ4YxXJlRrGGJZRu+2qUttIyeXznv3eXbefRr0rOz4a\nuW2n71VR3NgKxa3ajqa8pCnP3pGvTJ8O+6X4YpSiBiWdUkKrY9dErdD+vZrG\n58/lXJfyUt20vKGv4sWekOJBOepZyUjFqwi5vndRtoHOJ5IUAjqIAYa41VYs\nH6FD2XWYXbJ1eSyaHtAv6bpXYQ3xZGuKIqi8KYcKFz1FeXNB8p6S+4245dd6\nauwZOwpoWP7RygDH2skMMDnmT3XP/t4xXkDIku3DvpO+yO/AsR1DOmk8fUio\nahuP0JYD6qxPOc75KNu5uUPbz8AXQZ7Ds3iRhRzNDMIw6Hi0ZyKRr4J4lHYA\nQsqmeWXrVLFfQGqlsXX+rUG2FtnbKxvhDvBqCLiHLdEuvsHIxknAKIUhEcP4\n5/CAbMk3B3xHuLzCj3o2QHccql3coEyDL0qwZHbHjW2dfIxdqaJoSy9qP3C4\naKLja4CsFXM+dznVxfpYmE6LZkFWP28RZ/s3Bba5kXYR0/G71/Fk0IlHihWy\ntLy85XcxFyD82+Bkox37OeoAc1sS+7VmTkus5DKqUbX+5qcX7LCGqH0ALZyJ\nMdJutQCtiRHbkqruhBUjbtjScZweiqEi9HXFwB1HxF+6yVzAsxzzvcIfVEoV\ngLQK\r\n=cdZj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp59nKJ5vfy+XsOMin/r14SNDyIrL2qKXp0c3LZTNIRwIhAJzTTxf8C1mj0gr9MKRhkH4SEukbkDt5bikatTOTqCnJ"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.16_1574699162060_0.8309639852315167"},"_hasShrinkwrap":false},"0.3.17":{"name":"react-query","version":"0.3.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.17","dist":{"shasum":"8e12559c5b3b27121c43894e25e32e256ab6edaa","integrity":"sha512-J+1Fzm7QAzCneb1FT9UpKwb/AdNjimuK81EUOrr1U1crd+RyOxcoPghn+uTUMzEVLdVHN6m8hgCS2+92dkChFg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.17.tgz","fileCount":11,"unpackedSize":195743,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3AchCRA9TVsSAnZWagAA0zAP/R8OQIVTCIKi97PRw+Iq\niVGvtDgH8lrWQsBITr0uZHIbTIETwUpH6x1eXPYIEzbGsVCfIqW1lxPieL5S\nYER36yIQyZ2KE6BUOdZt6jfgeRTz/EkE4T+B8NMx2LwWDze03bhetHlfOlDF\n8gqlhDdvwGgLHm4/NUL6tHnwl2UTkyjGgpsnNB7iiCHT20ZbGgiDuM8BfeYm\nrJrQLbjJHs+DG5L9l4IVpMAgJP0ymzi2sh4SHPIGQUUu3zYH/Tqq8MOtapne\nYLEO6NczUhLG85z2PhBk41Ix366zQH6QXjUjAppPS0kC0sVIowAdLndWtANL\n4xJBX+bGCcCk33dzStoxqmpLZUkeR/ZxjJGTmK4J5MTuoo2GuCpStLoeQGDC\nakwlNx3PcB7cbNBfK5u3r7uhV25upWaPoduskHaQxxgLOmdOoUiqBnBCuloq\nT1IqhdD1PwcamA6WynuwiCKiScWaH7RzAPs/u1kAMNkY99DrlxiCmbiHHfER\ntmmCk94AJ9bhZxwNtwwFZMXSPGsealRKd6LaFKgLnY28NDFQsHeJ01NEZRIr\nCmu6CzmbO1KKUkAU2Mqblcytkv1MNC/RYgcOACblUSoSKbkZtBlp6YJjI55b\n9EfL7fSUP9IGIjzXvl/J/97Wpv4e5VXZQWGWUJRza4yTbYfy81p0Iv0LKIK4\nxwHx\r\n=BrEO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5QF021QRO6WqFXjRYVr0uvqDQWRfGJXpyPW+ZXwnxwQIgXhkDKfjUfi7VBcoLC3a80eNUz49eyuYNBfvEvRRrjC4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.17_1574700832775_0.3760610132459137"},"_hasShrinkwrap":false},"0.3.19":{"name":"react-query","version":"0.3.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.19","dist":{"shasum":"3effb5012c8c401aecb4b4a8a1c616850280ac20","integrity":"sha512-wLjVW5/2kP3owIQ+5TOAN45iQzAh9D5XpfTF399dGvhY4TE8euNXusoJJSJBebAf2Aow3lCr3irk4kqwRZ1JwQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.19.tgz","fileCount":11,"unpackedSize":197705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5MS+CRA9TVsSAnZWagAAWAcP/28y4GX2q0Zt2HoSEduQ\n4MIUiaQtD3MZh6tKavjgv1LaodxyEWsE2wuhHrxmatDT9vyWfzPbYbV9fHxW\njBLOP+/tw+cbhtGVa3xWoA3b+xvEYB+PqcjCioLra1GInIAJ5+lyr7lOnNZw\nr1+Ilx74pfhmL7pt4vgIYAHbxsqALu8Gljyl3cFsWFO+tPhcAgBVVkDYlmxx\nLU8nD1gcnoT+8tPzEOeg496QnOi5GKSoHt3o7GtDVRHynWeDwU48U6/4Nh4e\nYCGdGc6AmuSHK60rTeOXX9tTe72cU1N2yZMnR/zDYag+f67hiGWaS0yAkHDA\nLfkc4Mv0sgZq/7lbG6NENlvWvjr7CjoDilljSKhA71oA3Q3egQEmh7GH3wpE\noT81kGjcMbkhfHCW/noIjSe66+gHin1tLc3Ber7JtAh0fTp3CarEtw7GwD8t\n2V1/778AkasXwRRAt40nGMDmeqij2mF25TRW7FS5QKtJd8Vx3swRBJOWkE2Z\nQEF5Awf0ScQmpIBlnnFC305UuCqolHRbEsmGHSFqOENnU+PSsRKjdc71lAqq\nwe56umNmwqeMCX/VgZLSXC4fiy3ugdGZucPLGfQb8qfTjOb5HK66uZmUteq1\nI3vJfaDN6cuMgkFLp3dBMlC9/qYvJFxA+5CI2tqUtNBTk2i21FDc1W5jYPc/\nvUZW\r\n=pLgC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRtuEYpmFDoxRO2xqY5VymHgZJYuguCtDcSzdxvaCvuAIgP7t7wnktw0VYtdK0NnOGreCy1MvIPhOaJ46AWtntN6g="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.19_1575273662288_0.6827195697317641"},"_hasShrinkwrap":false},"0.3.20":{"name":"react-query","version":"0.3.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.20","dist":{"shasum":"f00d4f95337be0ecefb99751d94f18483e0bda6b","integrity":"sha512-O3TkqQp2tqwwsrZfcu2PGKPTzReDV7QYFCv/p/cqLyJJ3USY3vyJBXr6bmP+jHqE0dMz6s5W5ZfFY/rqZ/vuYQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.20.tgz","fileCount":11,"unpackedSize":199079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5TiPCRA9TVsSAnZWagAANT4P+gMSEqK3b7bpn/Gkfh7f\nldvIsl2ndW1Pfv1jihc1Emq1zW72lpUl3njgzdJyQouIQDA44Fh9thIdfkbS\n+tbVTogSlMRPWMi2rMrm+WVlh87lAq7+jCSmjGIaTRNjlDk2yBfbBhsKVbLT\nq5MCTrLMwsshXbfOox10aKbIh4AKJaST0Sj60wd2Yw8T5rkMH19t5CLBJyNW\naAvXshy3PqYAU7M+SBD0Cgltjh9DeWxC88nVMh/AsEDlIr5lnQiWsSrYDRHH\n+F9eb2zMIW+vt5qBOMRQ9KQciaxA/fk2QbduflLJIUbbZ7XuEv/LzrvmMLxF\nybsFNiuWp3EUnXa2HErajVi4qiDrhR+BP+7zdwc5ihUPXoVI8zu8HbuXIwJA\nbawbFPUpI065OvcyGt5AaFtf2Wy5zgars/QGdEVosCjdv0dAu3pbLnltrOTJ\nhp6F6ulMKYUw+OdIdBtNMtcmwrKk565liJdySsJBfRg6oU6PnUsCT7Kb9RbR\nrZR+F+KhFtkiUyYvEN02DGGoQMZd0R5Y8LSaXojp/vwmFrnEHMfVk70JSX3j\nmOnwOu3qLQk7n/119zEhB9Xt5cawUh7XOpLhi80vHcWsFPomTnG0cGIaGIwg\nGYpUvJ8N5w/EcWobQEfyFNXsuUhvDVpkrRhK+GOHsCOTtMZ2SsQ20xwlbllq\nzhAW\r\n=CFRm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhJgrDAVEWHw1XJxGcNgl/+U5WWO7eWpLE5N0QYQWwhAiEAuitBcvqRtNQLyZ0UXmqa3qejXsxNi+3pRl7P3RCfzz4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.20_1575303310734_0.6705414940735459"},"_hasShrinkwrap":false},"0.3.21":{"name":"react-query","version":"0.3.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.21","dist":{"shasum":"a9b96f2c2db5dbeb7917e36a84ccd3efc49c2db6","integrity":"sha512-hYizBxb/mEexG5dtl5LnqJZIwgk5FL7RaffC0WfH7/z7sLN5rfnrglU/Bh80E2HoUsHHWIyc5xyvjwnQiQL2jg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.21.tgz","fileCount":11,"unpackedSize":199467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6ev3CRA9TVsSAnZWagAAbpEP/RQSkB2Rb3MrwtpDWJsU\nslfix9gbErVVRly6U1noZFgHnSYCjVFoNvhWZbyCp/pvXtAb5a/n5N3tGrsq\nih3RWbD1ub7Wp16bkT8o0Xk9XMnFP2w9YMtj9oLgFDolJJrPej+eiwbGlDna\nac1Zo6qDOKy4vbNo9kUYHfCBHhQutEy099+iJVZ2ZjzVbfSxcncm6x/U19wu\nAyhA7jtD5XOZrPU+lMhnO4YTdSxehg9B8jvM9WMi0AqXFyd16K7ljpnuDJj7\nvWboV7ih0jLpdj561ZZ1+JWAH+N40cS2GgVprbMMSPHb1v5fQQ3oI0dno3np\najJMB9KcAC7NzubyAUEj7AdUub9QR1itlYAc5BgMQVOw35b7SN7lo2/FN2Cq\naIBabS8RRUnylk+wMfoY3G23+oAzxTLbUWSawvMbR0+ezylTyTg1K55kof0g\nq8LkC9px+PlCfGlrL0/F1gC4cOE1HY/ogU8TT++GfZujGjgiLcBaC4vdK2Ft\nEoFP61wl9eJ466mBvMfyZD+JiqcSsKSdchnaN1SYi5lTdsrqWZD6Cf6x4CFH\ng4/WvZJ6mLX3qSBqiWkOJaILE7i77QhbOA+7CLaVHjyvhktXn8j+3yB0A5W6\n7zHWhqNgxXE0AxU+qbTK7v4I84P2UTt90K/8gs5RBNiCEDTT/OiicYPCKM9G\n33oV\r\n=XGGz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEIzK9COxNT0G4DA3O/HqolccgVK145uYZSFcdSFEeYmAiEAikiwrMEIISPTC01k/gnATyfGVVk+25yorH7+2UYecMg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.21_1575611382781_0.640717620618261"},"_hasShrinkwrap":false},"0.3.22":{"name":"react-query","version":"0.3.22","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.22","dist":{"shasum":"042df656c1571df128a818964122d90e4af55edb","integrity":"sha512-x05TEfUAT69Qve7090IFBnqzYsl49s8+vx6sEpFAR2C0xdtUplr6ZAeSfya0SRft6ko4vJgktAJCTOV30AihPg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.22.tgz","fileCount":11,"unpackedSize":203635,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7q/hCRA9TVsSAnZWagAAZroP/RzmFCV90PSaklsxPypf\n9gwlSZU9TgoUqIBeVJ53hVWNakiiA2Ze2t7pU4RXaIPwMLWTic5XLTNKMp8f\nGlmLYlK0mCp0u1nyNpPtgdx9vRXeWMTZtj+D4PhTB1mb1jkPMO/peyxuw8Ig\nqLiT1JvfCDJ4CvGLmE1rHAB8Q3bTLou1syTfEPbr956fjKisBs/BjqgHeQCL\nujAMjPKt6xr4hBxo7r8TAc4aCC+fP2Tf3grZw5lBph08VeC66Nbc37VEERKS\ne6D4LM7yUoXr17LLgNYQmWKcZHu4RA7CLMAVKgHDSbjJIoA4XmP2YgwlZ+EB\nrBmZ75lycFQGqN0qd/lSK/hiykExqBMTKtE/PfRy2j0Uo08jeGxJ/IYQlYAA\nfw8Cb4DrQP05TUp4xAHD3i3XMFx+G2z01APlGeIbK40aEkItUqXooWxfmiKa\nrQwnJthGCNNmoUrPhvaeXoOwMBe+5J+swlYBwmUnJk5LjJKVK3+jVtMbKbxg\n8ZtLiFsnraT8O8LdTphm6wpLNUkN2pnXrRlDAcdJBGChVy0rFCPv3lzunOha\nK1+2QMsKxKu0bu81YglbFMhc3D0bVsUWgEVIKntvSNjWj08wUehsAylqiGrk\nzN7RWXzXxY3bEJJ4EBey6GqwbVbNP0fRGqQwbPfwMsFCA2Uv3hRc2scIl4ZW\nt5i+\r\n=tVRW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFzsESYptm06HJScTwniO43BfrpkJMDPMBePc2TEPxRwIhANXK4cu0Z7pSqCUcJgOSkd5vYgeSVVyWTBiiAV2kMD0Q"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.22_1575923680949_0.48667334412134866"},"_hasShrinkwrap":false},"0.3.23":{"name":"react-query","version":"0.3.23","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.23","dist":{"shasum":"922a9059d1580cfae2ebdea314a63204a8d734aa","integrity":"sha512-+paehuhjnc16yljrMbYPW0cf930m+8E24jYADuBy0LDY/Xnfy8d+OPK2R2WrWqibATYuTDDAgIgEP7QLcF4f/A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.23.tgz","fileCount":11,"unpackedSize":204508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7rJACRA9TVsSAnZWagAAhlwP/0ZcNSlc6ezHalTtyubV\nlZGz1rSdE6H8S63/tXEfpW+QfnAAXYnWs8tHUrxbm1aQgk3Ce4L0v66EErRF\n/O1NGX7LIkSw9wder5Pq3VpBGWEv2mNJMP4kCnuARQogLMlzMhm6gTyVl50b\nBxQhCOYg3s2P2VpcM7Ja8+hlJWLEarZazEGh16gwJlA4y62EhTeiZeUgksg3\nIbrsGpdfTTWbHpii/NiMNiLuAUM4FdLdPJo/AkQCIvoaRK6VwbSFKseqF8zQ\n7YRvCikShxuhCLuDCiW7PVKUmFJy+fnOCQgsXKPi9rBOIvlFRbVOoqWcprJD\nbLEv5kuSr1dcnP005rsfNS8NNP7q+yYaUL1JaEgYTGGWabvGD1Ut3/U9Tlit\nkaPFNT+H/3BwEMHg0rxOalLX3aI3tEtll9sp0zhtvMcW2j/Sq+ePeWL/nA6C\nELoYIo3G9dGlSKfpT6sUbJ2EzaJJZgFTKsCOuXga2q255Nd/XWUvVjrsmUE+\nf8AIoV329VOus56q8o3yhPMUTJfbsVN2vF28l41oKa1zH91M2WCNkw27IPz3\nXmKQrckAcTdHVacrBFIVUslwoPCk+w4THd3jdQxiSgPwYrRypDucLDmFNgDJ\n9V6qHlsLqsZDD/7ap4Dn+C4ecpGJ5eq+vzyl57/Xxs5HQRGyk24FyQfWLym0\n9xs8\r\n=tpnF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICS1yeGRmnLKOLiEhatwJ5oy/rv18tGYNjEMkKQ0/OsmAiEAn7e/LMvCtQzIx1xTBV7CfPz9P13Rt0OLps2cn9P7304="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.23_1575924287561_0.5948300402088293"},"_hasShrinkwrap":false},"0.3.24":{"name":"react-query","version":"0.3.24","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.24","dist":{"shasum":"0be07a7a8bf897ea1940643c0d0d34d6b65f5900","integrity":"sha512-cAdUWSmaNX314zmyNaMiGwUfSe9htGiCGOyeggLbusbeQShdQETlBlwKSNrn+hdc2mMLK0STD0FRbSGQFWJ8RQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.24.tgz","fileCount":11,"unpackedSize":209743,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeF1BxCRA9TVsSAnZWagAAZfgP/0+6hrjlgsH1jVm3psrl\nKjcYm+tezGWAUT1RHlx46NnPKuBFX3QMkmshu+U2g/7DLJAbAgULotJKIBuo\n71e2VvgLU/BNfrrDAxbeU3i5DamhKtj/s0GBXy7UScFJhM1WidSG6SBEEJuM\nE57V6v9a8ENkAE5d5FOed+V4qiOf/O9/xzkJ0N1SqPwntZRAEMd7LOsmE7mC\nvn1N+GDR82kFJYelqn8VR+WkNczIB8ELykQcP6WU9RhQ/659BfRoe/ryN2Hl\nXR+NnlLtdFpCx8vhuu6wj5x7GS25a1EJ4/R/5Zd1LSaKbEI/pFfKU14HPst1\nGVCxVLgBMBq0Aberv+NrXHr1CXwsZLOGfbgncCeOAGXb7/Sn8wTtd+T7TjBq\norL+KU8t4C9KelJf16Yz0PYOUEEUL4ht0ct9LQsgBp5I8LjS/oHbogyrfzN1\npd/gIJnHrBaRr7g/RuyyMjNEon0Gpp6yxOTO7skbzAix3pBsHpZIre07yEtw\npcCrYZl4WvAGJ8MnPJLJo0TxiXftYC0wO3TFkVlf36f7xtQaV1Bk+c3R0Anc\ng9AbvZI9Fr3VqGcE86vjujHSQUUYTG5LEfF6opUNv+NANhRj5U0r8JANwXFD\nOAJhvH0vf4uH1aeQ551aRMqyFzC69ntusee6Jbt1/9pr5LBVS+BlVwgd+vye\nRuAP\r\n=Zg4u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwfoXtCIuHdxfDQ1gM4sRrqfpF9x/hR6c3LDA2FuA10AiEA5lbzjXYPVnhaM1pR+VDB1LpSyM+NSAcpLGs73Bltk5g="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.24_1578586224594_0.7588095599297233"},"_hasShrinkwrap":false},"0.3.25":{"name":"react-query","version":"0.3.25","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.25","dist":{"shasum":"cf3ef6a6a71903ca421718b2e2786e9e92477005","integrity":"sha512-SmX24GLkfB7EkuLqy4c8818W4bBSi8qSziLGsMR9MYLRrzSbwVwsDqQDAF2m//b2YkKvalofJLxS8TTsrTx0iw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.25.tgz","fileCount":17,"unpackedSize":488986,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeShiLCRA9TVsSAnZWagAA9gkP/2DGiUet8ARfWLGtJMnE\n+qRo1i3yW8lGPFYOVVRTYIVgBrbaBGinlB5pkiT0OjFbwNDNnsbioj8d4r20\nzr9FEG1dThphxQ528ullsrSzSar2BAv/yxoyBr6TjDYNusp1kxDAzg955qWA\nXdNcz6cWSM3SXRkW26MYut8Z8J1d+R7OJuzN147aLsJftQ4O8WwsXmBzjasE\nRlm6Rh9/GsdtgWOlXj5i5Hi5oqyvwKqJQfvSM4efUTkzx2CzVdZlF2mnemCq\n4QwOjSLgYBS4tyV7mBlYM7gpazBJtAWEGlxdw0c8a8JUBCRGjAu9fjBfyY43\nOTREY0CTIiTNAKHpLNRWobzld9pk+oWpSCIn+v2KKJHucEN94ZjvxGdPDStQ\nFpmjAw2AwGXnllTkMxHzgU1CxzshlgnP0CMvr3KngyukUDdmuV6FLPTJ9OiP\nTHi/09GjReuD2q3Oa2b4C+lsmnATTX9pDZ7/f46mFj8RVRKco8fKl8dYPN6p\ncvjwD6M2HypyX26Oe6ZPSfERYwnKtZBsl3hRKK92HU+Ji62kUZf2zdDkdGJc\nql94/agQcKLKFiYHmf0/wMUfbJ2zwlsJJ7wkuaoFRo0G2hPLfTGLMVOPPENd\nPjZITIn8Y0CVmNQX6omZwsf3ak9MyPqv9pIE7hVlCiPiv1sxGo2abrbjIAVr\nxGk9\r\n=ZSQg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh+RlrED0VH8WqHtZlLEQPjvXhOGqnqs2DWLa3jS0dGQIhAI4H2sPBAE1eTUuoMslnkqOFbH+FUz12v1434iel97aq"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.25_1581914250603_0.6508628192244779"},"_hasShrinkwrap":false},"0.3.26":{"name":"react-query","version":"0.3.26","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/plugin-proposal-class-properties":"^7.4.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","fast-async":"^6.3.8","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.26","dist":{"shasum":"c767d7f3646fda5eec83710c69a6be408d9f0d1c","integrity":"sha512-bZ28RP5KWiX6G5kbCjmeeFu6RBI1L0HaM30qKcJupnrcOIPRaC7eV1CqkvoPNAmwjrQpH0Go6/XVebYc7swpfg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.26.tgz","fileCount":17,"unpackedSize":489982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeShrmCRA9TVsSAnZWagAANnwP/3nYyoZw7pFZHcgsEAkm\nyCR2aEgUqsiPkyhAS5Z38hS+Bl2h5DD6XZXeXWEP9TIh8bthTgy/5CsfDwbo\nUKXBAKr1MLvsHwjXk/5JadotKnO3dPSD3R6xv8scVF8KNxUtqTl4YGxKU+S/\nh67iVcTDwhYCVntYMTV0pRi4589GS/n6YCWCwcgLNH9TnfRnsHfJMsk/ulrZ\nIhLjGuehiH4wLCZUJYf4/Bo5kUFl9xu04OaMhaZ9aTf8jgix2P4wbEuhfkI2\nvyDbfByjfcMri8BpWsRvb9V54DTvBIeizPwv6JZxVQMQtBCKTw4BD/u/3msu\n8vLlLWkYklvT4x2tqXyLJ/CtDbk809/KrL4N4uV6TgZ/VM6xsdnEUFNZ/8Zc\nEYmoGNJQPEpJ8WVi4A2FpS5rr+pKFCoPs7GNX7vdni0lCxBJ67seho53lR7Q\nMTQNP2SDztOd0rYEIXKPj8tK9xPxHmjbx7EYGwmpP2wVocutWHUTro4KQ6X6\n/m/isvNF6hvhNHcUrU2sr8ogtR4Joqy/TH5T7WG1vjzGznB/CK2mYMn5qG4X\nNq5krnk4uo0e/3XkdhKEgP9udNxdNQ8gaBPWCSWVpmymsKfec3mUFA9I8Hyp\nFfIn04T/ECMU1iuw4QzdXo60KGJYfwwvxUcbZ8fp4niMAoYSmY+fIjhIIBRJ\nHw0O\r\n=FNz7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGiU2yk6P3pUXOOfJLxgabtBDtJMsPSOJ+smNVW8VT0bAiEAl3uf6bWM8+L2MlwNE1hjmCaeoEMA5hOxOfK8ehmI7g8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.26_1581914853777_0.46036686623363576"},"_hasShrinkwrap":false},"0.3.27-test.0":{"name":"react-query","version":"0.3.27-test.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`clearQueryCache`](#clearquerycache)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { data, isLoading, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      ) : null}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that they will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variable in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ status }) {\n  const { data, isLoading, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { data, isLoading, error } = useQuery(\n    ['todos', { page }],\n    fetchTodoList\n  )\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request.\n- Set the `paginated` option to `true`.\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters).\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    data: pages,\n    isLoading,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = pages[pages.length - 1]\n      const { nextId } = lastPage\n      // Fetch more starting from nextId\n      await fetchMore({\n        offset: nextId,\n      })\n    } catch {}\n  }\n\n  return isLoading ? (\n    <p>Loading...</p>\n  ) : pages ? (\n    <>\n      {pages.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `refetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { data, isLoading, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isLoading ? (\n        <span>Loading...</span>\n      ) : error ? (\n        <span>Error: {error.message}</span>\n      ) : data ? (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n        </>\n      ) : null}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { data, isLoading, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `null`. To get around this in SSR, you can pre-seed a query's data using the `config.initialData` option:\n\n```js\nconst { data, isLoading, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `isLoading` and `error` states will be replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { data, isLoading, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: ['todos', 'reminders'],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: [['todos', { status: 'done' }]],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: [['todos', false]] })\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { data, isLoading, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with its original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `isLoading` boolean is usually sufficient to show the initial hard-loading state for a query, but sometimes you may want to display a more subtle indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state:\n\n```js\nfunction Todos() {\n  const { data: todos, isLoading, isFetching } = useQuery('todos', fetchTodos)\n\n  return isLoading ? (\n    <span>Loading...</span>\n  ) : todos ? (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  ) : null\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables.\n  - It must be stable and deterministic and should not change if the variables of the query change.\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  isLoading,\n  refetch,\n  // with paginated mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  paginated,\n  getCanFetchMore,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the `refetch` method's `variables` option, e.g. `refetch({ variables })`.\n  - Must return a promise that will either resolves data or throws an error.\n- `paginated: Boolean`\n  - Set this to `true` to enable `paginated` mode.\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `paginated` mode**\n  - When using `paginated` mode, this function should return `true` if there is more data that can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error (after all retries have happened) and will be passed the error.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `isLoading` would normally be `true`\n  - When `true`, `useQuery` will throw runtime errors when `error` would normally be truthy\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `data: null | Any`\n  - Defaults to `null`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data to display.\n- `isFetching: Boolean`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function).\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useMutation`\n\n```js\nconst [mutate, { data, isLoading, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched.\n  - Must be an array of query keys, e.g. `['todos', ['todo', { id: 5 }], 'reminders']`.\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was thrown.\n- `isLoading: Boolean`\n  - Will be `true` if the query is both fetching and does not have any cached data.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data.\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening.\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations are done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function that can be used to trigger a refetch of:\n\n- A group of active queries.\n- A single, specific query.\n\nBy default, `refetchQuery` will only refetch stale queries, but the `force` option can be used to include non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (e.g. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (e.g. `['todos', { status: 'done' }]` will only refetch queries with that exact key).\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (e.g. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`).\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of its value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `prefetchQuery`\n\n`prefetchQuery` is a function that can be used to fetch and cache a query response for later before it is needed or rendered with `useQuery`. **Please note** that `prefetch` will not trigger a query fetch if the query is already cached. If you wish, you can force a prefetch for non-stale queries by using the `force` option:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn, { force, ...config })\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery), with the exception of a `force` option:\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to prefetch a query **even if it is stale**.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**, or throw with an **error**.\n\n## `clearQueryCache`\n\n`clearQueryCache` does exactly what it sounds like, it clears all query caches. It does this by:\n\n- Immediately deleting any queries that do not have active subscriptions.\n- Immediately setting `data` to `null` for all queries with active subscriptions.\n\n```js\nimport { clearQueryCache } from 'react-query'\n\nclearQueryCache()\n```\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see the [`useQuery` hook](#usequery).\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.27-test.0","dist":{"shasum":"f02586c49c2cb77df68924fbcc07672441ea0a23","integrity":"sha512-5ip74jTvUy0cv4qVfP+PBgtlAVAiKBAuXJMbqL6BvD6HDZic0Va/tjKNSz+Ccr2EPNbJxAlr/6M9In0dC/nGuw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.27-test.0.tgz","fileCount":17,"unpackedSize":494005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSh+pCRA9TVsSAnZWagAA3hkP/jFacODOujIrTMRmipCq\nV3IZNwJX1Gt/L92JjHrBGXZPQIN/X1x3POFefg9JeHW4FwdqXQFokil3vKVb\nsGAynJdGrcb/xlnxFI0Fw3sltGfkumMaTtm/tPjWGBuNznZOI3HUOy/35mW4\ngEzUm8Smd+2zhirzXIhumMupVrnifj3D89n3spI4dtK+Sc55E1KgvUI6d4Cj\neWniW7gqS9TiUMb1MVjTEJHn1TXQXb5AHZcwKdIqhqlbfPSCbNtL3Ju5X6cl\n8LgJ7n9CerY/zbCDs44ltsnRoMFg8xiAYJYMPdpiQcAy5AKvqNtvRTxLTvuQ\ncSODTvqAvcrd07DnVA6AWGDWZggk+y0le5vK3s6sx8oIZcZp/H3H+gCnLzXj\nK0zmITK+6tfIr2FN9gYFRyuCalmaI8PAIFe8aU5QkH4Ix7OysedVM91P3HHk\ntJKZL5AnZQLR1xPbt7In9FPPCSoKlF4UrYtEikFVdM9Gw+AWiAkK+f2cl15w\nrvdUeuUFmgL8Infn5diVNtf501x7t/V8mdWMHSr/0DmXIJIFYckWm9DRcINQ\nOZ4GaMjw1j3gWkgx6FyqNSm48QNR1sV3cTjERFIEM08DKN2wOcO4MNmD286A\nKo7EibAgQuZHfekfAW0SEieUea2OWPhsT8VFWOmuDqLasY0t9bYcKB+Rebv4\n4/RV\r\n=6DzA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2J7LK095PRUbOEnJYSQ/iurO2/6Z08LnA4rHpsBY5yAIgclaH4kn9bFoYwCIfWFbEwD3CBSYvN9GTJnXzSweYkZI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.27-test.0_1581916073260_0.09141154925235062"},"_hasShrinkwrap":false},"0.3.27":{"name":"react-query","version":"0.3.27","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.3.27","dist":{"shasum":"f59073e1f457db1c37057d145c966847b2dae954","integrity":"sha512-d0f8DM4DyF0MGm8jezpE+irBectEDwbY83ZRCTCDQh/OQ/bZVdXOfz5t8QWx8AsTjzjjGFURdnNnsTnxVHpARg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.3.27.tgz","fileCount":17,"unpackedSize":494177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSiCYCRA9TVsSAnZWagAACKcP/jHrSpL/pSF9EuyWFU5k\nh/unqud9vHiXwQnybUoA68acmgXOQg8HylB+g2RCiaNOmI136V3JmsU8LbSi\n6cuxcNPXzoO1hiTB73dakc5FjyQDTv4J+O4EXsL/hZop8UJ8j+9QNJl1Kg/E\nr4kgOdrU8PkGbWW9bJUOAA/l8kHEa+MpVK2bXeQ0G0V/jZYZ1/Y1ZsRFWcyM\nRnBzjgixgaJi2eRke5+TZtwQuu97+ASKT7m9dpmeOcvpyXRzYY9X2X4Mbf3E\nh7QoCr2iKdMlfL3Llv7A2PIHFnQTClwSXQhK52XZ9+fjBjBZ8Q9BuyMbW/Yw\nDgKa827ZltavWa5PLswiStb+LL3cpg/SS9VnpilA1io82hadsDhjSdq27D4Z\nVwir70PvpQAy5MOD7qXoFpd8S8D9EwCHxsuMP2wYws0IrKx5e7w9f/A6FuVF\nnqY6u61DxRCqmsYORMrYbscPm8scL4UrjHhx7GqGVO4iftqFGj8b2vCiV3X4\nhJPnsWfdcufjN28zBlWLllM+HiCB9UNk/MZ1hxqAUeFVv2DI8+TXW3+pPB6k\n865bsRF20/SxADWuJkzWHKGD42vUmKcnOIco2w6tyXt2+n95cZaHAoDh7XHL\n2xOKtM2NDyQh1PtMvQgva/M2fR+Gy1nFIKU4ktz1y5dUACG9bHb8KuEZ5Fan\nAtsE\r\n=Bphu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRoSF0Ro5lp87GLKIBb/ncb6q21kXtqlrUqTlu4eYomwIgBSYdaUS6ViUssAqwiY2oQPiUeAT944MxqqNPgJkdlwI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.3.27_1581916312027_0.28346560692494527"},"_hasShrinkwrap":false},"0.4.0":{"name":"react-query","version":"0.4.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.0"},"devDependencies":{"@babel/core":"^7.7.4","@babel/preset-env":"^7.4.5","@babel/preset-react":"^7.0.0","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.18.2","react":"^16.8.6","react-dom":"^16.8.6","rollup":"^1.12.4","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.4.0","dist":{"shasum":"a40399d6458e02d57455ff2f9f4faaa5fa4dfd13","integrity":"sha512-n9BCRDcqC7mAUMRMRKPfIRZzgJ+uiqYBTLa5fM1U+gY/iNIX2daAvdlinLv5K0V3mKzO9y0QChGYGKoZ/9uofA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.4.0.tgz","fileCount":17,"unpackedSize":501455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSizWCRA9TVsSAnZWagAASxgP/RDBnW9+aJhp3xYmp8Wx\ny+nMfTIDkEGRTENjQIU4sskUh//l60MLX4DOoSwL1J7Kvc6LY7XAX5cR4p7M\nItwbdRkOnRn/3P2DMpy2gmn890pDGA+GkNVEvUjDnl7cbzMPJ8oJlCFyFapE\nuOfS37AFDKJ+SrshJxUUQhuVQJAsTtmuKUsm4pi10tbSO/u4+9QhGSmEynOZ\nZrPcz1QV0ImNflfKiSIZg+caFqqtKNJEhQXcB71ZO4jcCKzGsCrNN9W+knTi\nzVNLoVGaVLEfskibPuMOWqvsMM3OI9J2n63zwXY3UmcfyJlqPROXc98Bd4em\na6y2/qni2cKDcub39jzSSVwPAgSaHMjNL1f8R33hJRwSY/32HKoUFMEDd9b7\nfEZ6jqMe3Je5LLdrbhw0DUcYzjPr67Gfc9vENz+iwFmdyqRfMNhpELD493nY\neVCKe6iDvoH9DTO17wUgdyhrBCz6md/6obaoFsrWUym3Dtx2DuWvoz9YfRG7\nNgPDujjSTfkb1ZVziF41H2AvZy6c4rwz+SRmGLS8wBZagU6cjWvj8qe3Bmgw\n41+offU53CX0sNRQEcPmAJ+EJrLjTivtzLvQxH9L/rxdchwz8Quecrws3yWN\nmh0JzIZRP/FcODPM+T8ZjOQ2FrCEU8+FU7BP9JHUN6qNtDySQT6jzcGPe7ha\nAyWb\r\n=yB+H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUvZeyTXPdu9Je+9ShXKEtN4dsI6AT9jlZ3jTu+OiKvAIhAKbITcph8vsBK6LGmuOPW2j/m97asqLK6YCtXUy90J4a"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.4.0_1581919445812_0.4810794644650389"},"_hasShrinkwrap":false},"0.4.1":{"name":"react-query","version":"0.4.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.4.1","dist":{"shasum":"486f7b78edc0f58f52da17ce5b883ca2657bd72d","integrity":"sha512-aYATNcYcVcsbivMyiICbyBIJRbSxOTKnoJKWifFx8VymqoWxNHjh0KIxd7mmESGX5BUz6htTw4SC6XYytMP47A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.4.1.tgz","fileCount":17,"unpackedSize":509944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSjKLCRA9TVsSAnZWagAAcqkP/iYXqLj1qnyMbiwDs6ku\nJKshpxepHbvstlCGSoLgRcH0dN+l4YhmFeoLTyPlpgaqvd3BKjW7CjtprXcZ\nTp5qGCsJeeHrWQfxEqkJq5nwzakC+vAujXlFAaVMVGziSjt4Ato/KKQIRwaT\nY3zWwuPdecCpFaKPPxYW3tqZTE9UG4qhkAfW8rO8UNRR+qahBqO2vYINZ+Oe\nQ4WnFBGkN80lM/x6HQDV/S62pEd6I6As4GD/tS5m5Ku7VqcFBUSLi5jhkYQW\nW4G4HevjeiIuGUpEZ+27oJyFFkt4cZ0OWu8cqkoBvwd0pdCb0u1RtANhUz2j\n9PNWtcHMwpU39+nf7/Tc9dO3axOa1+kEVuQkVrzA5Ba06t2OkTSG5EyyLxtg\nk1OB+ZAz49mD4RZd2PdKyr2sGXAUi7LcjWWUomOXPdbfPtq6V3KOXccxYvzT\n1kSt5iZ65Gyz95ZpNAcOLFnBv8G14YkcprpYsl5YETRL7FLM88AOHTS54YaG\nJq8GoY/3SySmk65VGtlNjlosdRGR7gxMbDDPQ8i2UMA8+HTnwLiHT9pgylf4\nBfwVoe2IZyZJwba/hKSTXDGZk1KshPXt1ZgO4lIeRpnA20jvoH4cP+Sch9by\ngQiwmbouwJbKdFxaspJAUvgY9W9DuV6jtJj1cQ4aR92zsRMfuk5UhfFeD/kq\nz0of\r\n=jOQI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDp4nnWfJxFuele2FWKjs1OukvJnXS4aGSrErHn1HFXZQIgK+/Fck+g0HbTuiTj4y/U1HUzG07E8Hy3M9Co6bgEQq8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.4.1_1581920906724_0.5051488682028213"},"_hasShrinkwrap":false},"0.4.2":{"name":"react-query","version":"0.4.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.4.2","dist":{"shasum":"40f005c4cffee343a0ea31985efb94103242397d","integrity":"sha512-ZYGiFyUifRHhM5cwaXDdMXLRTRFuHTkRrDU2gQGAeftaX1OdaNCrzjhfb3W4Wcr8X+iNWfeNtbt6t/6m5iQv9g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.4.2.tgz","fileCount":17,"unpackedSize":511815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSjTZCRA9TVsSAnZWagAAB5MP/iItpjbvKUBQMUqb1RpS\nMEzuWkumApZ8UplCfo9QDDTlqBrBWS9R6TSmSrQ2a0FzvkzGYYn1xJ3Dq7pi\nDqvF59QBNs0JiKcrPnFHlsqrFi43GaNO7X1PVGRZAF1JOyyXZsQXRBeuNwPz\nCHB+vK+W4iFLLlm3PerAX69eZwHdLFxVQz35mgKW9w4x9rTeIU5tLH866W0c\nd/Q6j/P+woq4xL8Ab6BOj58uVzVOqKl1KZsNUevwWE0VoP0YanACmwT6E2qJ\nLK9J7j5yVl/OXRbxHilxd0eheX/g7lK/C/KLXXQBK58M+5hf8wE6eL5ufkWB\n3sUdRRZPGbIePGRjmtocrZqbz7KzJw33VYWEE9jofYluR8edK2k9L4bb3zvH\nsgzpNrpUymsY7Oy/fDikGzv63qlsLy/67fNxdSMSrEjfP4t0R4+rDTki09f1\n0cMGRQcbcU3IHBrvx3IkAuc31D11yM2st9n+DvwDzI4T2VS3Vv3Fpcs9fGaC\nS9IUjuFvkIiRFPzqFwzbkIHPlQMeClDEPfATw1+Y9PW5Ctrm8DXfvTGMtcyR\n9pDnC1qAVoMU8zVenDv2qBVOjUzne4BPZILknn16A7DCJo+PW2Aww6EuBSpx\nKG8pPRcQNA/YsITj57Bd/3PAkAPwwjNd+7YfbwbDx9PrJmS05+5ewvzmayms\nsrFt\r\n=W7Um\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEy+1YzqbQWu9HxiPeI61UiLaGFsy5/YHQB6ZfRfABp5AiEArQn2HZFNnnW4CFzwC57ZRZxj8Re0PfPUbS1MXr1qKWY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.4.2_1581921497282_0.4620648745407592"},"_hasShrinkwrap":false},"0.4.3":{"name":"react-query","version":"0.4.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@0.4.3","dist":{"shasum":"ce6b90ee1677868c24bbf3050803c811f97e179c","integrity":"sha512-EoKxO41V3s0yh1LqeA3o7IQ/nO7gbCeHM1yCeVNMjyQ5kfeV7n1FgxXbOLEV3VZLTIxvHML5/n06Q8dvpLIqFA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.4.3.tgz","fileCount":10,"unpackedSize":229450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSyy/CRA9TVsSAnZWagAATx8P/iGI6hI6FhPP+pUomk2L\nKmw9biXA4Xc3Os7aQmYN+GeLXaOSvofZZfHTpLaeR1v5c+P3hpNCLaVauh3N\nNTItbOAFT0OSTvYfwVxBFfENSjmljYhLL5IE34eKcjcqFUAnyVp/Id7X6YUJ\nZWfn+gUIiDw0/VsNb+eR91hOhxhLpMrGdruamDMNO1MhuLBtRWeIjfxzGVD6\nEA2EwitIKofB8fvmeavdelppHxazA+vxGi0eczba/1A7qmm1aiu3QQf6m/xq\nVdM6p3EvKRWyCwtxTr5aZUm+htf7radkjUX/V4Rdn+7KEUlZPg8wL1uyFA1m\nGNJdrMlxvNfh9Ani5K+fGtxsJi4YmxKYn8iLK5xAtF12jt9mxqMChF579LUO\n48LUUGgAzOOqecTrLMDY1EWtkjEpHfXY3oOZaee/M5fPpj/ht0cXRiaW5cxU\nzd0NgkZobxKokjHesR7bMXyt6jXRNexjBMps1OPXcUoJFLCgv+Mrd6IKEupF\nbKuyrqLCBt96SRVsuMyZxTgXqcuTcR7+kbHhDTHmoCcdJpNjF00o18gmPbBn\ns3fgOGVItcNORwzUQwulV88+1z844Z0L16ART8qmfDsI6ytrGfg1E8lbgPJL\nga2ODdHcitJk2Hf2CNMPjRu7/7t8plSv05WJRDwGQP5lo1/+P0x+dDNZpVlB\nXdQL\r\n=45Rr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnZORMy7Zcsn2FydAiYnhQ+f3e4lLlA2WiI4SZWxy71QIgCNlm2xKD/j9Fs9mksw4OA1JJKxctW+7kwjuXv78ggF0="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.4.3_1581984958953_0.7598436106133273"},"_hasShrinkwrap":false},"1.0.0-alpha.0":{"name":"react-query","version":"1.0.0-alpha.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query groups. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query \"groups\" when defining query refetching configs, eg. you can refetch every query that has a `todos` key, regardless of variables, or you can target specific queries with (or without) variables. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`clearQueryCache`](#clearquerycache)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that they will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variable in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { status, data, error } = useQuery(['todos', { page }], fetchTodoList)\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request.\n- Set the `paginated` option to `true`.\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters).\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = pages[pages.length - 1]\n      const { nextId } = lastPage\n      // Fetch more starting from nextId\n      await fetchMore({\n        offset: nextId,\n      })\n    } catch {}\n  }\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {pages.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `refetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Background Updating...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `null`. To get around this in SSR, you can pre-seed a query's data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: ['todos', 'reminders'],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: [['todos', { status: 'done' }]],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: [['todos', false]] })\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with its original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables.\n  - It must be stable and deterministic and should not change if the variables of the query change.\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  ,\n  data,\n  error,\n  isFetching,\n  isCached,\n  failureCount,\n  refetch,\n  // with paginated mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  paginated,\n  getCanFetchMore,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the `refetch` method's `variables` option, e.g. `refetch({ variables })`.\n  - Must return a promise that will either resolves data or throws an error.\n- `paginated: Boolean`\n  - Set this to `true` to enable `paginated` mode.\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `paginated` mode**\n  - When using `paginated` mode, this function should return `true` if there is more data that can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error (after all retries have happened) and will be passed the error.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors. The corresponding `data` property has the error received from the successful fetch.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defualts to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isCached: Boolean`\n  - Will be `true` if the query's response is currently cached.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function).\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n  useErrorBoundary,\n  throwOnError,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched.\n  - Must be an array of query keys, e.g. `['todos', ['todo', { id: 5 }], 'reminders']`.\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `throwOnError`\n  - Defaults to `true` (but will be `false` in the next major release)\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data.\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening.\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations are done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function that can be used to trigger a refetch of:\n\n- A group of active queries.\n- A single, specific query.\n\nBy default, `refetchQuery` will only refetch stale queries, but the `force` option can be used to include non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (e.g. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (e.g. `['todos', { status: 'done' }]` will only refetch queries with that exact key).\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (e.g. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`).\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of its value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `prefetchQuery`\n\n`prefetchQuery` is a function that can be used to fetch and cache a query response for later before it is needed or rendered with `useQuery`. **Please note** that `prefetch` will not trigger a query fetch if the query is already cached. If you wish, you can force a prefetch for non-stale queries by using the `force` option:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn, { force, ...config })\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery), with the exception of a `force` option:\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to prefetch a query **even if it is stale**.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**, or throw with an **error**.\n\n## `clearQueryCache`\n\n`clearQueryCache` does exactly what it sounds like, it clears all query caches. It does this by:\n\n- Immediately deleting any queries that do not have active subscriptions.\n- Immediately setting `data` to `null` for all queries with active subscriptions.\n\n```js\nimport { clearQueryCache } from 'react-query'\n\nclearQueryCache()\n```\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.0","dist":{"shasum":"ebdb6fac8a8ae01741d5678cd1b60c174bec9a30","integrity":"sha512-tlnfkLgNUaXkA9uHwwxLofFbzdys80GhHragl1j1r3dPFRntkTNAeW7rL8EsgDvjWouEAA9cP2eyaCwGkDUzlw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.0.tgz","fileCount":10,"unpackedSize":255299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSy3/CRA9TVsSAnZWagAAXSAP/jEN/AIzebKrRgM/yXBI\nv77tQzlHz0iJ2B6qxraz9ODHVaWB+5X15sxpsFWLTOw6VArmZdxout30YvWS\n5DRRjKy7w6rI2c+WTxLp9Knh5SHjViSlklomK0hPD5oiv+FrI4vIPKopDvWZ\n9lgLcieJS6xulJ+suev7utShXH/SFzjpIb63PjWfrKiEot/0QIJTTJ+WbKqW\nqkKB/836vTXGOpsyXEFnuiYnCDTN1VlwZoQ98FCdbVK0qC7JdwW8lj1XHR6k\nezHRHAOjkn9aKFnV59U2LOsU96f5Oniu29SSailIQi9ZzG3uY2ldjEXQRE78\nB+8kd57BB4VSxN0YCuCeMLNryBLh1lqhH9qwGBrQuixxW3jbG+W/5jkWMv5N\nY7lMrSaePj0MMRhUh3DTJhqp8oYjl7p8r3MrUJiLEAf/UzpL5AzxF3AY+jNo\nuOWE0bYs4Qd/i5+12735H0cU5+aEhNthDlZZS4ytnnPcpNYdhERiS4RXbZp3\nTiZUcwuN2rjtZQLA4AALs5Iw+PlswAlGFGQGU1fnx/3Hi+mhoDU0YVtK/Uci\nzy4dxTQy45FgkfdY1hLMTrSLWOIBOAtLngT/pxdnfH+XfNt6P2e543isf7ru\nUb0jaj7vZ5+ENCBANpP89lAHcINiwmyLf+Pdm7Oe0DpQhW67Izu8teUrxtNO\n2ddg\r\n=faOO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCERZZTjIzafhFhkHuRWQcizL8LRTVdnJJSUCE2O7ijuwIgZnH/oHIM3YDrsqxBbYPooWULc05z7AAUKgTU/rA8zXQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.0_1581985278798_0.740508245998974"},"_hasShrinkwrap":false},"1.0.0-alpha.1":{"name":"react-query","version":"1.0.0-alpha.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query groups. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query \"groups\" when defining query refetching configs, eg. you can refetch every query that has a `todos` key, regardless of variables, or you can target specific queries with (or without) variables. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`clearQueryCache`](#clearquerycache)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that they will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variable in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { status, data, error } = useQuery(['todos', { page }], fetchTodoList)\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request.\n- Set the `paginated` option to `true`.\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters).\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = pages[pages.length - 1]\n      const { nextId } = lastPage\n      // Fetch more starting from nextId\n      await fetchMore({\n        offset: nextId,\n      })\n    } catch {}\n  }\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {pages.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `refetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Background Updating...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `null`. To get around this in SSR, you can pre-seed a query's data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: ['todos', 'reminders'],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: [['todos', { status: 'done' }]],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: [['todos', false]] })\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with its original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables.\n  - It must be stable and deterministic and should not change if the variables of the query change.\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  ,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  // with paginated mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  paginated,\n  getCanFetchMore,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the `refetch` method's `variables` option, e.g. `refetch({ variables })`.\n  - Must return a promise that will either resolves data or throws an error.\n- `paginated: Boolean`\n  - Set this to `true` to enable `paginated` mode.\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `paginated` mode**\n  - When using `paginated` mode, this function should return `true` if there is more data that can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error (after all retries have happened) and will be passed the error.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function).\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n  useErrorBoundary,\n  throwOnError,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched.\n  - Must be an array of query keys, e.g. `['todos', ['todo', { id: 5 }], 'reminders']`.\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `throwOnError`\n  - Defaults to `true` (but will be `false` in the next major release)\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data.\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening.\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations are done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function that can be used to trigger a refetch of:\n\n- A group of active queries.\n- A single, specific query.\n\nBy default, `refetchQuery` will only refetch stale queries, but the `force` option can be used to include non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (e.g. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (e.g. `['todos', { status: 'done' }]` will only refetch queries with that exact key).\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (e.g. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`).\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of its value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `prefetchQuery`\n\n`prefetchQuery` is a function that can be used to fetch and cache a query response for later before it is needed or rendered with `useQuery`. **Please note** that `prefetch` will not trigger a query fetch if the query is already cached. If you wish, you can force a prefetch for non-stale queries by using the `force` option:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn, { force, ...config })\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery), with the exception of a `force` option:\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to prefetch a query **even if it is stale**.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**, or throw with an **error**.\n\n## `clearQueryCache`\n\n`clearQueryCache` does exactly what it sounds like, it clears all query caches. It does this by:\n\n- Immediately deleting any queries that do not have active subscriptions.\n- Immediately setting `data` to `null` for all queries with active subscriptions.\n\n```js\nimport { clearQueryCache } from 'react-query'\n\nclearQueryCache()\n```\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.1","dist":{"shasum":"e44a068d43687dfcfae68b92566c024465ca5bef","integrity":"sha512-wmX3dNE7UXA8vTNK//1kZZTT0HY1QV/DvRng4nGIweSv6xzoPfmX8nQGUjNgAVuLfY03pPhq/UN8uHC9fgtsig==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.1.tgz","fileCount":10,"unpackedSize":252209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTAoECRA9TVsSAnZWagAAaX4P/3erHZRgyBz7NWrY5d8g\nDDRfQ8t51jBSMqS+7SEk5d4gR8OffonmQrL4IRDlQOJ6w3ARM9wuynohs4c8\nA1jUWebJh19N+uKoNN/AsT/LgLj2ap8ByQpbK4l4McL0h2hj5dkRPZjw1Qxb\nhhtw9hF7BCKk0LqMGw03YaaJBIXfGCKG0iZ44oVtp6j45K8RMxUt2klNI88k\nYlZjOqJV/nxNV7FkjVPX2xGPL6xndJ3xoFrIRUVRkgYh49sV+VaxkXJgOdC8\n8fPln1Sll9ZVYmVzDXW05UI6kJY9Fq1FDXBTf40NmBnZb0TyemJCSIyYxEqy\n6n6sHCsvU6MZsEojpJ3lB+OfXxp8Np1yRSuLuR8gMw3wiMKno/Y172OwzDhK\nKPbuzy2hKXJ5+DWykka7mQ/I57GH7A8ycikdbqO09jEvmY7HFdNtx1bKXmUP\n3z8sSNg83JwnwxdzQciDREY1S5KIElJlMk0PoKme83dcH66xrn1v2copR7Dr\nDwcHOLnDfBiaRjc69jkpLIQYpRWDMdZdRna0uuoHqW7YbyJxNUo6c7HiRJI3\nMpINyPFLgGhFHqjdiSCoshWoq/uc2t9ZbZurfYqSOo44tjyqwoKQqp5sMDXS\nRFKBRNRodx9e2ZMfnGdCQ0PePK2x/NcREbXZahcbywBEwyKgKg1ov6TEaEQp\nO8Yr\r\n=kQ5q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ3N3jwVxDm38xJ5ZYAz4KNHBOm9QVUqBhEQLOFM9NFgIhAMcPFvzxYf9GjJtxcUgkBPqI31goxQDFbyet465Nj9LP"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.1_1582041604015_0.08642331902562184"},"_hasShrinkwrap":false},"1.0.0-alpha.2":{"name":"react-query","version":"1.0.0-alpha.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@babel/runtime":"^7.8.4","@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/plugin-external-helpers":"^7.8.3","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query groups. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query \"groups\" when defining query refetching configs, eg. you can refetch every query that has a `todos` key, regardless of variables, or you can target specific queries with (or without) variables. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`clearQueryCache`](#clearquerycache)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that they will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variable in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { status, data, error } = useQuery(['todos', { page }], fetchTodoList)\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request.\n- Set the `paginated` option to `true`.\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters).\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = pages[pages.length - 1]\n      const { nextId } = lastPage\n      // Fetch more starting from nextId\n      await fetchMore({\n        offset: nextId,\n      })\n    } catch {}\n  }\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {pages.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `refetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Background Updating...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `null`. To get around this in SSR, you can pre-seed a query's data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: ['todos', 'reminders'],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: [['todos', { status: 'done' }]],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: [['todos', false]] })\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with its original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables.\n  - It must be stable and deterministic and should not change if the variables of the query change.\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  ,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  // with paginated mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  paginated,\n  getCanFetchMore,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the `refetch` method's `variables` option, e.g. `refetch({ variables })`.\n  - Must return a promise that will either resolves data or throws an error.\n- `paginated: Boolean`\n  - Set this to `true` to enable `paginated` mode.\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `paginated` mode**\n  - When using `paginated` mode, this function should return `true` if there is more data that can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error (after all retries have happened) and will be passed the error.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function).\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n  useErrorBoundary,\n  throwOnError,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched.\n  - Must be an array of query keys, e.g. `['todos', ['todo', { id: 5 }], 'reminders']`.\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `throwOnError`\n  - Defaults to `true` (but will be `false` in the next major release)\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data.\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening.\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations are done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function that can be used to trigger a refetch of:\n\n- A group of active queries.\n- A single, specific query.\n\nBy default, `refetchQuery` will only refetch stale queries, but the `force` option can be used to include non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (e.g. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (e.g. `['todos', { status: 'done' }]` will only refetch queries with that exact key).\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (e.g. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`).\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of its value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `prefetchQuery`\n\n`prefetchQuery` is a function that can be used to fetch and cache a query response for later before it is needed or rendered with `useQuery`. **Please note** that `prefetch` will not trigger a query fetch if the query is already cached. If you wish, you can force a prefetch for non-stale queries by using the `force` option:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn, { force, ...config })\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery), with the exception of a `force` option:\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to prefetch a query **even if it is stale**.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**, or throw with an **error**.\n\n## `clearQueryCache`\n\n`clearQueryCache` does exactly what it sounds like, it clears all query caches. It does this by:\n\n- Immediately deleting any queries that do not have active subscriptions.\n- Immediately setting `data` to `null` for all queries with active subscriptions.\n\n```js\nimport { clearQueryCache } from 'react-query'\n\nclearQueryCache()\n```\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.2","dist":{"shasum":"50df18034c4560677ec028edcecc583dbd22d802","integrity":"sha512-vvEVXavJKK7Ha3VbGdj9fohoECURBM6wS5fFtKTLNvxKUKUEX+Rs5fByclwXx+u0gNyMdwUhK6I2e1KO7H3ozw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.2.tgz","fileCount":12,"unpackedSize":298908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTHrICRA9TVsSAnZWagAAnGMP/Rl0/AXpBMknRh1hPxR1\ndddSP4oAV5xwwl/t/bWcOI8wccNJ+GoDNpoxRb+HFHOhe+XwquwDwDrsthbY\npjlaR8Kg234clpFJ3Ix2GUp9PmxqCBBmoDAFCrEwCvaEjezc2VPVdr1KmQax\nFnwiLTylmkQFl0ZqieJy8y/QRO/2OAScuWq+iEtHkWR6DentZHXY179Pk5TE\nyuBaqGtMFEvolP3iUES46YGES0hjI4ZZYWHtqE/8ujrPA52m834/kPPJ3OCC\ngmkze4EDPhdwqBOqtKkilPYeEXQ0dwg7CvrYMRXKQvucS7gsYc5gxMR2ARaK\nm068IBbDP/oeO4M0JKc5UxYlz243wiSPqcvzjA0YUIOMdfQ24YrDID1Y5trS\n6a0Tg5017UF4gFlWqCVOy4L08vFk61w47+MnM662FwHHvU3h1lcjY6P2K8kR\n00twTRrme57n5gkmQUXdFcNpIrE4s7iDY7kgLU0F1QCjz5LLzTdLPkz/so0v\n5F+MBPkOEvlVX0kGb708t082rL5UASil555iB+bs2az0mKeJE7biDDq3lcaB\ncoNCniJ6+S1ADY/p2UZUstti3ZuLXneMTbos4ShLQvLBSiQonCxyt9Ft5sHO\naNi7AbE7gNZtCbL0RAzJDZmvpnPrGeaWvybdO/IBtYjGq4s3pvhDjaSI/E+D\nvz6v\r\n=bI53\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfys9WpGF42oX27sQ9OdubnEO7k0Rx1Kq5uPJ1wa6QXwIgHORjx4gPUJ3ls+kQ/nC8GS7B+jnuTXCsCoquHzFUTxg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.2_1582070471534_0.5569996361711604"},"_hasShrinkwrap":false},"1.0.0-alpha.3":{"name":"react-query","version":"1.0.0-alpha.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport, protocol & backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Automatic Query Refetching\n- Multi-layer Cache + Garbage Collection\n- Load-More Pagination + Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query groups. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query \"groups\" when defining query refetching configs, eg. you can refetch every query that has a `todos` key, regardless of variables, or you can target specific queries with (or without) variables. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Load-More Pagination](./examples/load-more-pagination)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Variables](#query-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Load-More & Infinite-Scroll Pagination](#load-more--infinite-scroll-pagination)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`setQueryData`](#setquerydata)\n  - [`refetchQuery`](#refetchquery)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`refetchAllQueries`](#refetchallqueries)\n  - [`useIsFetching`](#useisfetching)\n  - [`clearQueryCache`](#clearquerycache)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nSince React Query uses a query's **unique key** for essentially everything, it's important to tailor them so that they will change with your query requirements. In other libraries like Zeit's SWR, you'll see the use of URL's and GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, you can pass a **tuple key** with a `string` and `object` of variables to deterministically get the same key.\n\n> Pro Tip: Variables passed in the key are automatically passed to your query function!\n\nAll of the following queries would result in using the same key:\n\n```js\nuseQuery(['todos', { status, page }])\nuseQuery(['todos', { page, status }])\nuseQuery(['todos', { page, status, other: undefined }])\n```\n\n### Query Variables\n\nTo use external props, state, or variables in a query function, pass them as a variable in your query key! They will be passed through to your query function as the first parameter.\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList // This is the same as `fetchTodoList({ status, page })`\n  )\n}\n```\n\nWhenever a query's key changes, the query will automatically update:\n\n```js\nfunction Todos() {\n  const [page, setPage] = useState(0)\n\n  const { status, data, error } = useQuery(['todos', { page }], fetchTodoList)\n\n  const onNextPage = () => {\n    setPage(page => page + 1)\n  }\n\n  return (\n    <>\n      {/* ... */}\n      <button onClick={onNextPage}>Load next page</button>\n    </>\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(user && ['projects', { userId: user.id }]) // User is `null`, so the query key will be falsey\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\nconst { data: user } = useQuery(['user', { userId }])\nconst { data: projects } = useQuery(() => ['projects', { userId: user.id }]) // This will throw until `user` is available\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\nconst { data: user } = useQuery(ready && ['user', { userId }]) // Wait for ready to be truthy\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on unique `query + variables` combinations.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Load-More & Infinite-Scroll Pagination\n\nRendering paginated lists that can \"load more\" data or \"infinite scroll\" is a common UI pattern. React Query supports some useful features for querying these types of lists. Let's assume we have an API that returns pages of `todos` 3 at a time based on a `cursor` index:\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextId: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextId: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextId: 9}\n```\n\nUsing the `nextId` value in each page's response, we can configure `useQuery` to fetch more pages as needed:\n\n- Configure your query function to use optional pagination variables. We'll send through the `nextId` as the `cursor` for the next page request.\n- Set the `paginated` option to `true`.\n- Define a `getCanFetchMore` option to know if there is more data to load (it receives the `lastPage` and `allPages` as parameters).\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'todos',\n    ({ nextId } = {}) => fetch('/api/projects?cursor=' + (nextId || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  // ...\n}\n```\n\nYou'll notice a few new things now:\n\n- `data` is now an array of pages that contain query results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `canFetchMore` boolean is now available\n- An `isFetchingMore` boolean is now available\n\nThese can now be used to render a \"load more\" list (this example uses an `offset` key):\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction Todos() {\n  const {\n    status,\n    data: pages,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useQuery(\n    'projects',\n    ({ offset } = {}) => fetch('/api/projects?offset=' + (offset || 0)),\n    {\n      paginated: true,\n      getCanFetchMore: (lastPage, allPages) => lastPage.nextId,\n    }\n  )\n\n  const loadMore = async () => {\n    try {\n      // Get the last page\n      const lastPage = pages[pages.length - 1]\n      const { nextId } = lastPage\n      // Fetch more starting from nextId\n      await fetchMore({\n        offset: nextId,\n      })\n    } catch {}\n  }\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {pages.map((page, i) => (\n        <React.Fragment key={i}>\n          {page.data.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        {canFetchMore ? (\n          <button onClick={loadMore} disabled={isFetchingMore}>\n            {isFetchingMore ? 'Loading more...' : 'Load More'}\n          </button>\n        ) : (\n          'Nothing more to fetch.'\n        )}\n      </div>\n      <div>\n        {isFetching && !isFetchingMore ? 'Background Updating...' : null}\n      </div>\n    </>\n  ) : null\n}\n```\n\n#### What happens when a paginated query needs to be refetched?\\*\\*\n\nWhen a paginated query becomes `stale` and needs to be refetched, each page is fetched `individually` with the same variables that were used to request it originally. If a paginated query's results are ever removed from the cache, the pagination restarts at the initial state with a single page being requested.\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" Just Works™️ in React Query. The reason for this is that query results are cached and retrieved synchronously when rendered. As long as a query is cached and has not been garbage collected, you should never experience problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will not automatically refetch due to changes to their query function or variables.\n- The query will not automatically refetch due to `refetchQueries` options in other queries or via `refetchQuery` calls.\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Background Updating...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n> Pro Tip: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `null`. To get around this in SSR, you can pre-seed a query's data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `refetchQueries` and `updateQuery` options, they become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query avoids the pitfalls that come with normalized caches and prescribes **atomic updates** instead of partial cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use the `refetchQueries` option when calling a mutation's `mutate` function.\n\n```js\n// When this mutation succeeds, any queries with the `todos` or `reminders` query key will be refetched\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: ['todos', 'reminders'],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a query key tuple to `refetchQueries`:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  refetchQueries: [['todos', { status: 'done' }]],\n})\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nIf you want to **only** refetch `todos` queries that don't have variables, you can pass a tuple with `variables` set to `false`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: [['todos', false]] })\nconst run = async () => {\n  try {\n    await mutate(todo)\n  } catch {}\n}\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** any `refetchQueries` have been refetched, you can pass the `waitForRefetchQueries = true` option to `mutate`:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { waitForRefetchQueries: true })\n    console.log('I will only log after all refetchQueries are done refetching!')\n  } catch {}\n}\n```\n\nIt's important to note that `refetchQueries` by default will only happen after a successful mutation (the mutation function doesn't throw an error). If you would like to refetch the `refetchQueries` regardless of this, you can set `refetchQueriesOnFailure` to `true` in your `mutate` options:\n\n```js\nconst [mutate] = useMutation(addTodo, { refetchQueries: ['todos'] })\n\nconst run = async () => {\n  try {\n    await mutate(todo, { refetchQueriesOnFailure: true })\n    // Even if the above mutation fails, any `todos` queries will still be refetched.\n  } catch {}\n}\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of invalidating any queries for that item and wasting a network call to refetch them again, we can take advantage of the object returned by the mutation function and update any query responses with that data that match that query using the `updateQuery` option:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    updateQuery: ['todo', { id: 5 }],\n  }\n)\n\n// The query below will be updated with the response from the mutation above when it succeeds\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response before it has been refetched. To do this, you can use the exported `setQueryData` function:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Full replacement\nsetQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nsetQueryData(['todo', { id: 5 }], previous => ({ ...previous, status: 'done' }))\n```\n\n**Most importantly**, when manually setting a query response, it naturally becomes out-of-sync with its original source. To ease this issue, `setQueryData` automatically triggers a background refresh of the query after it's called to ensure it eventually synchronizes with the original source.\n\nShould you choose that you do _not_ want to refetch the query automatically, you can set the `shouldRefetch` option to `false`:\n\n```js\nimport { setQueryData } from 'react-query'\n\n// Mutate, but do not automatically refetch the query in the background\nsetQueryData(['todo', { id: 5 }], newTodo, {\n  shouldRefetch: false,\n})\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in the React Query API\n\nIf you absolutely despise the default query key and variable syntax, you can replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: userQueryKey => {\n    // Your custom logic here...\n\n    return [fullQueryHash, queryGroupId, variablesHash, variables]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n- `fullQueryHash: string`\n  - This must be a unique `string` representing the query and variables.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `queryGroupId: string`\n  - This must be a unique `string` representing only the query type without any variables.\n  - It must be stable and deterministic and should not change if the variables of the query change.\n- `variablesHash: string`\n  - This must be a unique `string` representing only the variables of the query.\n  - It must be stable and deterministic and should not change if things like the order of variables is changed or shuffled.\n- `variables: any`\n  - This is the object that will be passed to the `queryFn` when using `useQuery`.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Build the variables object\n  let variables = {}\n  params\n    .split('&')\n    .filter(Boolean)\n    .forEach(param => {\n      const [key, value] = param.split('=')\n      variables[key] = value\n    })\n\n  // Use stableStringify to turn variables into a stable string\n  const variablesHash = Object.keys(variables).length\n    ? stableStringify(variables)\n    : ''\n\n  // Remove trailing slashes from the url to make an ID\n  const queryGroupId = url.replace(/\\/{1,}$/, '')\n\n  const queryHash = `${id}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, () => axios.get(url).then(res => res.data))\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  ,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  // with paginated mode enabled\n  isFetchingMore,\n  canFetchMore,\n  fetchMore,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  paginated,\n  getCanFetchMore,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Optionally receives the `variables` object passed from either the query key tuple (`useQuery(['todos', variables], queryFn)`) or the `refetch` method's `variables` option, e.g. `refetch({ variables })`.\n  - Must return a promise that will either resolves data or throws an error.\n- `paginated: Boolean`\n  - Set this to `true` to enable `paginated` mode.\n  - In this mode, new pagination utilities are returned from `useQuery` and `data` becomes an array of page results.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `getCanFetchMore: Function(lastPage, allPages) => Boolean`\n  - **Required if using `paginated` mode**\n  - When using `paginated` mode, this function should return `true` if there is more data that can be fetched.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error (after all retries have happened) and will be passed the error.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getCanFetchMore` option function).\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  refetchQueries,\n  refetchQueriesOnFailure,\n  useErrorBoundary,\n  throwOnError,\n})\n\nconst promise = mutate(variables, { updateQuery, waitForRefetchQueries })\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `refetchQueries: Array<QueryKey>`\n  - Optional\n  - When the mutation succeeds, these queries will be automatically refetched.\n  - Must be an array of query keys, e.g. `['todos', ['todo', { id: 5 }], 'reminders']`.\n- `refetchQueriesOnFailure: Boolean`\n  - Defaults to `false`\n  - Set this to `true` if you want `refetchQueries` to be refetched regardless of the mutation succeeding.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `throwOnError`\n  - Defaults to `true` (but will be `false` in the next major release)\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `updateQuery: QueryKey`\n  - Optional\n  - The query key for the individual query to update with the response from this mutation.\n  - Suggested use is for `update` mutations that regularly return the updated data with the mutation. This saves you from making another unnecessary network call to refetch the data.\n- `waitForRefetchQueries: Boolean`\n  - Optional\n  - If set to `true`, the promise returned by `mutate()` will not resolve until refetched queries are resolved as well.\n\n### Returns\n\n- `mutate: Function(variables, { updateQuery })`\n  - The mutation function you can call with variables to trigger the mutation and optionally update a query with its response.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `setQueryData`\n\n`setQueryData` is a function for imperatively updating the response of a query. By default, this function also triggers a background refetch to ensure that the data is eventually consistent with the remote source, but this can be disabled.\n\n```js\nimport { setQueryData } from 'react-query'\n\nconst maybePromise = setQueryData(queryKey, data, { shouldRefetch })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the individual query to update with new data.\n- `data: any | Function(old) => any`\n  - **Required**\n  - Must either be the new data or a function that receives the old data and returns the new data.\n- `shouldRefetch: Boolean`\n  - Optional\n  - Defaults to `true`\n  - Set this to `false` to disable the automatic background refetch from happening.\n\n### Returns\n\n- `maybePromise: undefined | Promise`\n  - If `shouldRefetch` is `true`, a promise is returned that will either resolve when the query refetch is complete or will reject if the refetch fails (after its respective retry configurations are done).\n\n## `refetchQuery`\n\n`refetchQuery` is a function that can be used to trigger a refetch of:\n\n- A group of active queries.\n- A single, specific query.\n\nBy default, `refetchQuery` will only refetch stale queries, but the `force` option can be used to include non-stale ones.\n\n```js\nimport { refetchQuery } from 'react-query'\n\nconst promise = refetchQuery(queryKey, { force })\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - **Required**\n  - The query key for the query or query group to refetch.\n  - If a single `string` is passed, any queries using that `string` or any tuple key queries that include that `string` (e.g. passing `todos` would refetch both `todos` and `['todos', { status: 'done' }]`).\n  - If a tuple key is passed, only the exact query with that key will be refetched (e.g. `['todos', { status: 'done' }]` will only refetch queries with that exact key).\n  - If a tuple key is passed with the `variables` slot set to `false`, then only queries that match the `string` key and have no variables will be refetched (e.g. `['todos', false]` would only refetch `todos` and not `['todos', { status: 'done' }]`).\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `refetchAllQueries`\n\n`refetchAllQueries` is a function for imperatively triggering a refetch of all queries. By default, it will only refetch stale queries, but the `force` option can be used to refetch all queries, including non-stale ones.\n\n```js\nimport { refetchAllQueries } from 'react-query'\n\nconst promise = refetchAllQueries({ force, includeInactive })\n```\n\n### Options\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to force all queries to refetch instead of only stale ones.\n- `includeInactive: Boolean`\n  - Optional\n  - Set this to `true` to also refetch inactive queries.\n  - Overrides the `force` option to be `true`, regardless of its value.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve when all refetch queries are complete or will reject if any refetch queries fail (after their respective retry configurations are done).\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `prefetchQuery`\n\n`prefetchQuery` is a function that can be used to fetch and cache a query response for later before it is needed or rendered with `useQuery`. **Please note** that `prefetch` will not trigger a query fetch if the query is already cached. If you wish, you can force a prefetch for non-stale queries by using the `force` option:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn, { force, ...config })\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery), with the exception of a `force` option:\n\n- `force: Boolean`\n  - Optional\n  - Set this to `true` to prefetch a query **even if it is stale**.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**, or throw with an **error**.\n\n## `clearQueryCache`\n\n`clearQueryCache` does exactly what it sounds like, it clears all query caches. It does this by:\n\n- Immediately deleting any queries that do not have active subscriptions.\n- Immediately setting `data` to `null` for all queries with active subscriptions.\n\n```js\nimport { clearQueryCache } from 'react-query'\n\nclearQueryCache()\n```\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.3","dist":{"shasum":"5c06558a5aebfcbbfe539cf7bb1042a6d1748bef","integrity":"sha512-mZLItaHksZrbJcp+myjgf8t6tkSHeggtzI/zMgtaaYadsSsWtNZgYKtITbSP+7r9ySpC7vzwkI6Snf0n45TLjQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.3.tgz","fileCount":12,"unpackedSize":298779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeTHtnCRA9TVsSAnZWagAA8WIQAIQRFSr9wCHWbIHIz/S7\nCWl1gB5BvA8ENY5k01t1PXKP6gewZ6W8MnTz9K84PrR0ErMf4jtKPdx3bpBs\njatH3JR6k7gOSCkRL679SjT4kSNKY/2aMsITrxULNW83NZ48BcbIdG2Ok/Z7\nyxvAwolArEbyKYZRh5KlMzRk0aQI0lWKs5sRDwawkYrWgRvdCZtEBu8gA4eW\nTX0pkEfERdaZE29I6hPDSw3Abe6Y80MoIusOIcEVe/EqPOPAEwS6Q3P1fCEM\nrBoK51zWo1TPDXVA6o7zfBKZ6sZfTwp7v6L8jhPnDoXxsnBeuLRmEgE3ClIb\nfzdPGIwxu3uiSaCPm5/qf20tTvZoLUN9T7xN92CZfTwgAFkfcjFAq6cMdkFD\nwQNNuED1DmoCGq4FLEExoLZdVR0ibpXYVKHAxYNUYk4GAexGD/x69WTVYYNM\ne7IdUxWJVzVS+oh7SNq0I7Rnij2/H+HNCSLbRC6Rtr+NiTW1Ooq2buYAspD6\n4ozxlZwUUVoCMhw7kdajV9zoMZu5Cy+8DZXgvvLSUecAGZ13RYxwGDsPhl/Y\nrcXzXdHbxKC89YY6XF/K0/ovoLmuvi1yrxoGq32ORbhSoZjd7hU55zADg1mO\nI1DCQKlInnzx0JZwdacmgFtsWsBZxO470ngaSFgHBKG/6h0xI8Tr5CPY0oMF\n7G0p\r\n=LiQb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2yCvPZ0eCyMeWqsk/EO6HdTOx8LF7qk3Jrs/UTUuFGwIhAPHT9m0Yj78hAjw4Kcvl2pqDFHNL6VU5efGG0jn7TxBz"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.3_1582070630417_0.9198775124113889"},"_hasShrinkwrap":false},"1.0.0-alpha.4":{"name":"react-query","version":"1.0.0-alpha.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Declarative Query Refetching\n- Multi-layer Cache + **Automatic Garbage Collection**\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query key \"groups\" when defining query refetching configs, eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Pagination](./examples/pagination)\n- [Load-More & Infinite Scroll](./examples/load-more-infinite-scroll)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usePaginatedQuery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-queries-with-useInfiniteQuery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache`](#querycache)\n    - [`prefetchQuery`](#querycacheprefetchquery)\n    - [`getQueryData`](#querycachegetquerydata)\n    - [`setQueryData`](#querycachesetquerydata)\n    - [`refetchQueries`](#querycacherefetchqueries)\n    - [`removeQueries`](#querycacheremovequeries)\n    - [`subscribe`](#querycachesubscribe)\n    - [`isFetching`](#querycacheisfetching)\n    - [`clear`](#querycacheclear)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // also status === 'success', but \"else\" logic works, too\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries you'll see the use of URL's and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n#### String-Only Query Keys\n\nThe simplest form of a key is actuall not an arry, but just an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n#### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Queries with additional parameters\n- Individual resources\n\n```js\n// A list of todos that are \"done\"\nuseQuery(['todos', { status: 'done' }], ...) // queryKey === ['todos', { status: 'done' }]\n\n// An individual todo\nuseQuery(['todos', 5], ...) // queryKey === ['todos', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todos', 5, { preview: true }], ...) // queryKey === ['todos', 5, { preview: 'true' } }]\n\n```\n\n#### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n### Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as an items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n### Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be tracked and passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId], // These will be used as the query key\n    [{ debug }, 'foo', 'bar'] // these parameters\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById (key, todoId, { debug }, foo, bar) {\n  return new Promise(\n    // ...\n  )\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key or as an item in the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsey),\n  // so the query will not execute until the user exists\n  user && ['projects', { userId: user.id }],\n  getProjectsByUser\n)\n```\n\n#### Pass a query key array with a falsey item\n\nSimilar to above, you can also pass falsey items in you query key array:\n\n```js\n// Only get the user when `email` is available\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user && user.id` would be (falsey) at first,\n  // so the query will not execute until the user exists\n  ['projects', user && user.id], // You could also do `user?.id` if you're using the latest babel!\n  getProjectsByUser\n)\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', { userId: user.id }]\n)\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\n\n// Get the user when we are `ready`\nconst { data: user } = useQuery(ready && ['user', { email }]) // Wait for ready to be truthy\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic has of your query key.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['todos', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {// Since the last page's data potentially sticks around between page requests,\n      // we can use `isFetching` to show a background loading\n      // indicator since our `status === 'loading'` state won't be triggered\n      isFetching ? <span> Loading...</span> : null}{' '}\n    </div>\n  )\n}\n```\n\n### Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n#### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n#### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `individually` and in parallel with the same variables that were originally used to request each group. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n#### What if I need to pass custom information to my query function?\n\nBy default the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, you should never experience any problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically refetch due to changes to their query function or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can either use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Caching is not performed during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the initial state of an unfetched query. This means that `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `refetchQueries` method](#querycacherefetchqueries) method and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query helps you avoids the manual labor that come with maintainig normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `refetchQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos')\n    queryCache.refetchQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(['todos', { status: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `refetchQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or sub keys, you can pass an `exact: true` option to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `refetchQueries` method. This function will receive each query object from the queryCache and allow you return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to override some of `useMutation`'s optoins at the time of calling `mutate`. To do that, you can optionally override them by sending them through as options to the `mutate` function after your mutation variable. Supported option overrides are include:\n\n- `onSuccess`\n- `onSettled`\n- `onError`\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo)\n\nmutate(todo, {\n  onSuccess: () => {},\n  onSettled: () => {},\n  onError: () => {},\n  throwOnError: true,\n})\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n  }\n)\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> \\*\\*It's important to understand that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  status: 'done',\n}))\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const normalizedQueryKey = normalizeQueryKey(queryKey)\n\n    // Hasht the normalize query key to get a string\n    const queryHash = hash(normalizedQueryKey)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, normalizedQueryKey]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `normalizedQueryKey`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `normalizedQueryKey: Array<any>`\n  - This array should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `usePaginationQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolveData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, nextPageVariables) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useInfiniteQuery(queryKey, [, queryVariables], queryFn, {\n  getFetchMore: (lastPage, allPages) => nextPageVariables\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - \\*\\*Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(fetchMoreVariablesOverride) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `onSuccess: Function(data) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is is either successfully fetched or encounters an error and be passed either the data or error\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError, })`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`refetchQueries`](#querycacherefetchqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `updateQuery` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryVariables, queryFn, config)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**. It **will not** throw an error if the prefetch fails, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.getQueryData`\n\n`getQueryData` is an synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { getQueryData } from 'react-query'\n\nconst data = getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `updateQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { setQueryData } from 'react-query'\n\nsetQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.refetchQueries`\n\nThe `refetchQueries` method can be used to refetch multiple queries in cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.refetchQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including backround-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n  )\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.susbscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchAllOnWindowFocus: true,\n  refetchInterval: false,\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For a description of all config options, please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.4","dist":{"shasum":"46753c53cd4d7c46fed2890ddbc5d703b9545c48","integrity":"sha512-YQTA9PCboiiAYM/336TpLJ49JM1b4vxqJY5/kcnx5UkUW6jSyxEQeT+g1D6O55b+Wce5RYI0cZDUkRN4JuuW3A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.4.tgz","fileCount":12,"unpackedSize":334396,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUb+1CRA9TVsSAnZWagAApS4P/0mZHbfL58MIAw6SMjnh\nhDObmk6NLc4TgFXIe0bw/lm72npKaojn/t19raSJ3Ecg8eE8rdF6ksTDyFwQ\nv6/RSJxM7n1YYxE6oGmRJ3b6Wn+NZGKNfPp2D0k9eBPvM+25n9WMqKFPJJD8\n6LvlB6YaepR9NNdCato6nmw06LsBDp2if1URFcwN81IXzVcK7BjXdkMMJ9zp\n1+PiT61bsYD1k1QC/ZBDfkRs/KNO33h2wqhGHVKm7QW+c2qTfaXpdnAMB/fT\n/pTOZ5iGm36jTwJAqNnrqBycoJDHUP4/kaLwA4sRlqNLUq5HDE7tnRM0yRCR\nHYFAvQdy6/k+Ui2g4Yj1l+I5dEHE8Rvy09jhI5aj6crbOZFJ/T9+hblvDULt\nbuf9HT7F4S80cF3ptp0CoFg4iWHOr/8fjiuyOQxlwLiZBw1trCE7lUt64/xY\npf/yc3J9L2dg168Br4Fny6HifkUUc1jWLGlZ+ZjSbf2kdeObiJlNxEZTrWUa\nR2yNydqKnhN+uPkC7cAnSUek9BjpKWXWsv+eUfjzTc6zGgS4MzDrTVDpkkZm\nlSAxTho/HY0nOJgKw+B4S8jqHUpIP0unXARH/sYWnwMSX+lKeA8ZQt+7yaeD\nI6U9fT/+E2DBY/tFqXrl/u5n0U+4C9ETRUgIiKl6KGoxwPFvqUdciAKwGIVA\npvB2\r\n=VjMG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+03IYDYwfWHMxMxQ+wMqRzaCRKa8KGXLhqAeRveLhaAiB0/LwPFYFHcbcE3xyHQ3V03bkbl3wEa2to+a312EiZpA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.4_1582415797148_0.6981367208822431"},"_hasShrinkwrap":false},"1.0.0-alpha.5":{"name":"react-query","version":"1.0.0-alpha.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Declarative Query Refetching\n- Multi-layer Cache + **Automatic Garbage Collection**\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) Support\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing async data and client stores/caches are plentiful these days, but most of these tools:\n\n- Duplicate unnecessary network operations\n- Force normalized or object/id-based caching strategies on your data\n- Do not automatically manage stale-ness or caching\n- Do not offer robust API's around mutation events, invalidation or query management\n- Are built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n\n## The Solution\n\nReact Query exports a set of hooks that attempt to address these issues. Out of the box, React Query:\n\n- Flexibly dedupes simultaneous requests to assets\n- Automatically caches data\n- Automatically invalidates stale cache data\n- Optimistically updates stale requests in the background\n- Automatically manages garbage collection\n- Supports automatic retries and exponential or custom back-off delays\n- Provides both declarative and imperative API's for:\n  - Mutations and automatic query syncing\n  - Query Refetching\n  - Atomic and Optimistic query manipulation\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query key \"groups\" when defining query refetching configs, eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Pagination](./examples/pagination)\n- [Load-More & Infinite Scroll](./examples/load-more-infinite-scroll)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usePaginatedQuery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-queries-with-useInfiniteQuery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Initial Data](#initialdata)\n  - [Initial Data Function](#initialdatafunction)\n  - [Initial Data from Cache](#initialdatafromcache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache`](#querycache)\n    - [`prefetchQuery`](#querycacheprefetchquery)\n    - [`getQueryData`](#querycachegetquerydata)\n    - [`setQueryData`](#querycachesetquerydata)\n    - [`refetchQueries`](#querycacherefetchqueries)\n    - [`removeQueries`](#querycacheremovequeries)\n    - [`subscribe`](#querycachesubscribe)\n    - [`isFetching`](#querycacheisfetching)\n    - [`clear`](#querycacheclear)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // also status === 'success', but \"else\" logic works, too\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries you'll see the use of URL's and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n#### String-Only Query Keys\n\nThe simplest form of a key is actuall not an arry, but just an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n#### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Queries with additional parameters\n- Individual resources\n\n```js\n// A list of todos that are \"done\"\nuseQuery(['todos', { status: 'done' }], ...) // queryKey === ['todos', { status: 'done' }]\n\n// An individual todo\nuseQuery(['todos', 5], ...) // queryKey === ['todos', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todos', 5, { preview: true }], ...) // queryKey === ['todos', 5, { preview: 'true' } }]\n\n```\n\n#### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n### Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as an items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n### Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    // These will be used as the query key\n    ['todo', todoId],\n    // These will get passed directly to our query function\n    [\n      debug,\n      {\n        foo: true,\n        bar: false,\n      },\n    ],\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById(key, todoId, debug, { foo, bar }) {\n  return new Promise()\n  // ...\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key or as an item in the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsey),\n  // so the query will not execute until the user exists\n  user && ['projects', { userId: user.id }],\n  getProjectsByUser\n)\n```\n\n#### Pass a query key array with a falsey item\n\nSimilar to above, you can also pass falsey items in you query key array:\n\n```js\n// Only get the user when `email` is available\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user && user.id` would be (falsey) at first,\n  // so the query will not execute until the user exists\n  ['projects', user && user.id], // You could also do `user?.id` if you're using the latest babel!\n  getProjectsByUser\n)\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', { userId: user.id }]\n)\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\n\n// Get the user when we are `ready`\nconst { data: user } = useQuery(ready && ['user', { email }]) // Wait for ready to be truthy\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic has of your query key.\n- By default query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)** or when **new usages/instances** of a query are mounted.\n- By default query results are **always** cached **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n  - Since the query is stale, it is refetched in the background automatically.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['todos', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {// Since the last page's data potentially sticks around between page requests,\n      // we can use `isFetching` to show a background loading\n      // indicator since our `status === 'loading'` state won't be triggered\n      isFetching ? <span> Loading...</span> : null}{' '}\n    </div>\n  )\n}\n```\n\n### Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n#### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n#### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `individually` and in parallel with the same variables that were originally used to request each group. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n#### What if I need to pass custom information to my query function?\n\nBy default the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, you should never experience any problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically refetch due to changes to their query function or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can either use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result\n\n### Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `true` instead of false\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n### Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and cpu:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n### Initial Data from Cache\n\nIn some circumstances you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if your source query you're using to look up the intitial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including an `updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Query caches are not written to memory during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `refetchQueries` method](#querycacherefetchqueries) method and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query helps you avoids the manual labor that come with maintainig normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `refetchQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos')\n    queryCache.refetchQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(['todos', { status: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `refetchQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or sub keys, you can pass an `exact: true` option to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `refetchQueries` method. This function will receive each query object from the queryCache and allow you return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to override some of `useMutation`'s optoins at the time of calling `mutate`. To do that, you can optionally override them by sending them through as options to the `mutate` function after your mutation variable. Supported option overrides are include:\n\n- `onSuccess`\n- `onSettled`\n- `onError`\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo)\n\nmutate(todo, {\n  onSuccess: () => {},\n  onSettled: () => {},\n  onError: () => {},\n  throwOnError: true,\n})\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n  }\n)\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> \\*\\*It's important to understand that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  status: 'done',\n}))\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into to the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `usePaginationQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolveData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, nextPageVariables) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useInfiniteQuery(queryKey, [, queryVariables], queryFn, {\n  getFetchMore: (lastPage, allPages) => nextPageVariables\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - \\*\\*Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(fetchMoreVariablesOverride) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `onSuccess: Function(data) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is is either successfully fetched or encounters an error and be passed either the data or error\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError, })`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`refetchQueries`](#querycacherefetchqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `updateQuery` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryVariables, queryFn, config)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**. It **will not** throw an error if the prefetch fails, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.getQueryData`\n\n`getQueryData` is an synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { getQueryData } from 'react-query'\n\nconst data = getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `updateQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { setQueryData } from 'react-query'\n\nsetQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.refetchQueries`\n\nThe `refetchQueries` method can be used to refetch multiple queries in cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.refetchQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is an slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { getQuery } from 'react-query'\n\nconst query = getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObect`\n  - The query object from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including backround-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n  )\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.susbscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  // Global\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: false,\n  refetchAllOnWindowFocus: true,\n  queryKeySerializerFn: queryKey => [queryHash, queryFnArgs],\n  onSuccess: () => {},\n  onError: () => {},\n  onSettled: () => {},\n\n  // useQuery\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchInterval: false,\n  queryFnParamsFilter: args => filteredArgs,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-alpha.5","dist":{"shasum":"1821fc19847d708a319d8495b6238bbb76a03e4e","integrity":"sha512-QiscL81F26P2/tWIKQMpXHcCoXk6HfwKJ/vF7YlTFDbSgI9qdNIu41NjXe8q2FjgH9nEtEspp7P4fS2ApvbnAQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-alpha.5.tgz","fileCount":12,"unpackedSize":350053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVoO2CRA9TVsSAnZWagAACfMP/Rw0IFwYrwRHnKBF3Mdj\nzh/NeiaAHEsVpGgiFWakPJ/Dxtj0v4LTco8vfq168JEpexCAlz0gKPuc4oV9\n4dFQxuT3hqRLyg+3A+sfN8D+/iZaPuKtITyGSBfEi80GvjxxDSns8XEwvoNh\ntO3LtvLmxO29u3whwZdh7/UwHGA9fWcZeBRQPY4s4pTE5Hex4VhAduONu1Ft\nKr2hfdecctTSsgcjp3l/EMVbLVrCOHow0ckskkCyyGI+V29TsiOjH1M2Zb8i\nAhhqFPLbAsksFLOPBBazQZUhKRImBiWUOF65JrMArrAo0hGh8pYycMXL18wb\nlTE7dPFg1MYVi39TL7+GHZGzndRIHFtxEJP9o22py79FAOh7BRzCy8mDhY0V\nFqkZ9s4q9x5jihOk9ROlSQ+awA5xsZR/EZMrA7ad/1q+bKcJZMRP8yX2wY2m\nBfM0P8boq/gMTmv95K7o+i2ytMP3mVjm2Rl0jWdYQUyXRZ+DYzHO0zipP8n/\nUGcHBW+zJ180Gj5zpfw6eWz1/JR2UjeZM+lCSW3e1XGaToZ7wUjOtOej7P9d\n729wOpBFWp8GH9RKcHQV1hyPd/Z7UQtRR6u5YQ8HvE+lSIzEiQ/sbLSWxzBP\nIWxxPjhlEnMOrBx3ovUJcTzdkhahQeWJIDB+mZyHPDOmb4YSaL4h9PAZd0lR\nfzD6\r\n=RGjL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAKzVqBvGAqWrI/qLm0uJkbzoqldF2Ul3TvxzTC4y2J2AiBlnyPZxQQkYyzBAaYrpaJfq3xeJSu5QPazVZ8UsFUZog=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-alpha.5_1582728117997_0.05531180945118974"},"_hasShrinkwrap":false},"1.0.0-beta.0":{"name":"react-query","version":"1.0.0-beta.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"jest","test:watch":"jest .","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<!-- <a href=\"https://travis-ci.org/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-query.svg?branch=master\" />\n</a> -->\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a>\n<a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a>\n<a href=\"https://spectrum.chat/react-query\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, Streaming, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n    <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your \\*\\*global state\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL, and even streaming-based APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar is spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- No Default Data Fetcher Function - React Query does not ship with a default fetcher (but can easily be wrapped inside of a custom hook to achieve the same functionality)\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL-based by nature and much more flexible. Both the key (todos) and any variables ({ status: 'done' }) are used to compute the unique key for a query (and it's done in a very stable, deterministic way). This also allows you to use query key \"groups\" when defining query refetching configs, eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps, but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Overall API design opinions\n\n</details>\n\n## Examples\n\n- [Basic](./examples/basic)\n- [Custom Hooks](./examples/custom-hooks)\n- [Auto Refetching / Polling / Realtime](./examples/auto-refetching)\n- [Window Refocus Refetching](./examples/focus-refetching)\n- [Optimistic Updates](./examples/optimistic-updates)\n- [Pagination](./examples/pagination)\n- [Load-More & Infinite Scroll](./examples/load-more-infinite-scroll)\n- [Suspense CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense)\n- [Playground CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li><a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <!-- <td>\n        <ul>\n        <li></li>\n        </ul>\n      </td> -->\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usePaginatedQuery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-queries-with-useInfiniteQuery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Initial Data](#initialdata)\n  - [Initial Data Function](#initialdatafunction)\n  - [Initial Data from Cache](#initialdatafromcache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Cancelling Query Requests](#cancelling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n- [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache`](#querycache)\n    - [`prefetchQuery`](#querycacheprefetchquery)\n    - [`getQueryData`](#querycachegetquerydata)\n    - [`setQueryData`](#querycachesetquerydata)\n    - [`refetchQueries`](#querycacherefetchqueries)\n    - [`removeQueries`](#querycacheremovequeries)\n    - [`subscribe`](#querycachesubscribe)\n    - [`isFetching`](#querycacheisfetching)\n    - [`clear`](#querycacheclear)\n  - [`prefetchQuery`](#prefetchquery)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`setConsole`](#setConsole)\n\n## Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\n## Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nconst info = useQuery('todos', fetchTodoList)\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThis key can be whatever you'd like it to be as long as:\n\n- It changes when your query should be requested again\n- It is consistent across all instances of that specific query in your application\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // also status === 'success', but \"else\" logic works, too\n        <ul>\n          {data.map(todo => (\n            <li key={todo.id}>{todo.title}</li>\n          ))}\n        </ul>\n      )}\n    </div>\n  )\n}\n```\n\n### Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries you'll see the use of URL's and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n#### String-Only Query Keys\n\nThe simplest form of a key is actuall not an arry, but just an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n#### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Queries with additional parameters\n- Individual resources\n\n```js\n// A list of todos that are \"done\"\nuseQuery(['todos', { status: 'done' }], ...) // queryKey === ['todos', { status: 'done' }]\n\n// An individual todo\nuseQuery(['todos', 5], ...) // queryKey === ['todos', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todos', 5, { preview: true }], ...) // queryKey === ['todos', 5, { preview: 'true' } }]\n\n```\n\n#### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n### Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as an items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { completed, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n### Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    // These will be used as the query key\n    ['todo', todoId],\n    // These will get passed directly to our query function\n    [\n      debug,\n      {\n        foo: true,\n        bar: false,\n      },\n    ],\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById(key, todoId, debug, { foo, bar }) {\n  return new Promise()\n  // ...\n}\n```\n\n### Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n#### Pass a falsey query key\n\nIf a query isn't ready to be requested yet, just pass a falsey value as the query key or as an item in the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsey),\n  // so the query will not execute until the user exists\n  user && ['projects', { userId: user.id }],\n  getProjectsByUser\n)\n```\n\n#### Pass a query key array with a falsey item\n\nSimilar to above, you can also pass falsey items in you query key array:\n\n```js\n// Only get the user when `email` is available\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user && user.id` would be (falsey) at first,\n  // so the query will not execute until the user exists\n  ['projects', user && user.id], // You could also do `user?.id` if you're using the latest babel!\n  getProjectsByUser\n)\n```\n\n#### Use a query key function\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', { email }])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', { userId: user.id }]\n)\n```\n\n#### Mix them together!\n\n```js\nconst [ready, setReady] = React.useState(false)\n\n// Get the user when we are `ready`\nconst { data: user } = useQuery(ready && ['user', { email }]) // Wait for ready to be truthy\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  () => ['projects', { userId: user.id }] // Wait for user.id to become available (and not throw)\n```\n\n### Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data is deleted and garbage collected.\n\n</details>\n\n### Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['todos', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {// Since the last page's data potentially sticks around between page requests,\n      // we can use `isFetching` to show a background loading\n      // indicator since our `status === 'loading'` state won't be triggered\n      isFetching ? <span> Loading...</span> : null}{' '}\n    </div>\n  )\n}\n```\n\n### Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n#### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n#### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `individually` and in parallel with the same variables that were originally used to request each group. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n#### What if I need to pass custom information to my query function?\n\nBy default the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, you should never experience any problems with scroll restoration.\n\n### Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically refetch due to changes to their query function or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n### Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`).\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(\n  ['todos', { page: 1 }],\n  fetchTodoList,\n  {\n    retry: 10, // Will retry failed requests 10 times before displaying an error\n  }\n)\n```\n\n### Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 10000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n### Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, then you're in luck. You can either use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await prefetchQuery('todos', () => fetch('/todos'))\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result\n\n### Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `true` instead of false\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n### Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and cpu:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n### Initial Data from Cache\n\nIn some circumstances you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if your source query you're using to look up the intitial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including an `updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n### SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Query caches are not written to memory during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n### Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nconst { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/sandbox) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n### Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n### Cancelling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of cancelled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n## Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n### Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n### Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `refetchQueries` method](#querycacherefetchqueries) method and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\n### Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update locale queries with the new data imperatively, React Query helps you avoids the manual labor that come with maintainig normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `refetchQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos')\n    queryCache.refetchQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(['todos', { status: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `refetchQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or sub keys, you can pass an `exact: true` option to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { status: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `refetchQueries` method. This function will receive each query object from the queryCache and allow you return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to override some of `useMutation`'s optoins at the time of calling `mutate`. To do that, you can optionally override them by sending them through as options to the `mutate` function after your mutation variable. Supported option overrides are include:\n\n- `onSuccess`\n- `onSettled`\n- `onError`\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo)\n\nmutate(todo, {\n  onSuccess: () => {},\n  onSettled: () => {},\n  onError: () => {},\n  throwOnError: true,\n})\n```\n\n### Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo)\n\nmutate(\n  {\n    id: 5,\n    name: 'Do the laundry',\n  },\n  {\n    onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n  }\n)\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> \\*\\*It's important to understand that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  status: 'done',\n}))\n```\n\n## Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n## Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n## Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n### Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n## Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into to the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n#### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with urls and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n#### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { status: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n\n## `usePaginationQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolveData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(variables) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, nextPageVariables) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useInfiniteQuery(queryKey, [, queryVariables], queryFn, {\n  getFetchMore: (lastPage, allPages) => nextPageVariables\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsey | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsey value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsey and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - \\*\\*Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n- `cacheTime: Int`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ variables: Object, merge: Function, disableThrow: Boolean })`\n  - A function to manually refetch the query.\n  - Supports custom variables (useful for \"fetch more\" calls).\n  - Supports custom data merging (useful for \"fetch more\" calls).\n  - Set `disableThrow` to true to disable this function from throwing if an error is encountered.\n- `fetchMore: Function(fetchMoreVariablesOverride) => Promise`\n  - If using `paginated` mode, this function allows you to fetch the next \"page\" of results.\n  - `variables` should be an object that is passed to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error }] = useMutation(mutationFn, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n- `variables: any`\n  - Optional\n  - The variables object to pass to the `mutationFn`.\n- `onSuccess: Function(data) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is is either successfully fetched or encounters an error and be passed either the data or error\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError, })`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n- `status: String`\n  - Will be:\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success' if the last mutation attempt was successful.\n- `data: null | Any`\n  - Defaults to `null`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`refetchQueries`](#querycacherefetchqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `updateQuery` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { prefetchQuery } from 'react-query'\n\nconst data = await prefetchQuery(queryKey, queryVariables, queryFn, config)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either resolve with the **query's response data**. It **will not** throw an error if the prefetch fails, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.getQueryData`\n\n`getQueryData` is an synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { getQueryData } from 'react-query'\n\nconst data = getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `updateQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { setQueryData } from 'react-query'\n\nsetQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.refetchQueries`\n\nThe `refetchQueries` method can be used to refetch multiple queries in cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.refetchQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Don't remember to destructure it ouf of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is an slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { getQuery } from 'react-query'\n\nconst query = getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObect`\n  - The query object from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including backround-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n  )\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.susbscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns `true` if any query in your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Boolean`\n  - Will be `true` if any query in your application is loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  // Global\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: false,\n  refetchAllOnWindowFocus: true,\n  queryKeySerializerFn: queryKey => [queryHash, queryFnArgs],\n  onSuccess: () => {},\n  onError: () => {},\n  onSettled: () => {},\n\n  // useQuery\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchInterval: false,\n  queryFnParamsFilter: args => filteredArgs,\n  refetchOnMount: true\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0-beta.0","dist":{"shasum":"2236a443c19f757089030089b8e86c7998f58688","integrity":"sha512-wEuExgoHlnm9hNKtls5rBUihe9KzgKWqE0FIWciLS1qcBWSuXPezASaoWGJong5uGgG1vKAuE6vo3rgSe76OYQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0-beta.0.tgz","fileCount":12,"unpackedSize":352766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVqGPCRA9TVsSAnZWagAAyaUQAIsde5CNh24NDj8AsaK6\nUy9U6IkNGSoQeI0wuRxkISqVEgDYB3OAFCXI6XF/LdJeencAFGumanl0Tn2k\nm+LMRHbUWW+zKvsg9jJn2LCYTXzRV4FxpgWqO8Cx0Pz2cyugsjMhpoET4q+O\n43ovsKQftXhd4RBPkkDOr3D8odqbZ3UXapS4uXKfW9HfT+y3e8HCJIrFN3eB\nRdz3ILzr2pLyVB8Wz1k31k6I1Eio4+Hwt7Mh/QpuSCIaClHHhy18km7FvZyW\n/JJAllBYy9gpJysLOERs6o3UTPxmHY0HLZvvKb/Ik9a/nhdbl6ON7k+e7sqt\nXH4GuIAvPqK/H0aBIL5G2AmJSz2BzDu0mBmaGSouDB0KTciVJDYNUe7AP9El\nFPq03S1HoOxGX5p9NjtoQrkiWw869X9iPYW23/aonvXkyZm/qXA0Xe780rtI\n742JqfK+6Y3NzNkSTyyJWWjtAp/i6E95hOjAdBOq/uGMrSnxDnQcLDwkbaB6\ntOZKdJ4GMphfDJKw5uahLTB8/VZWbX0bbRFmnM54hVi0VFvTTjVx25+TdrNp\n5C3XI5fv05gPduh9Qtvg0eM/UK+I6Km6vepL+ttKK+EaQRJI2Se8E9fxMXL9\nD4yMN5wyMjhKBKqvBdJt4RzIA5ds/C5neQGEw/ohGQpAbB+qbCqdcvPBttSW\nUL+d\r\n=TjCk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNqb9igqdTZBjWjcYoGTdU53G/zKvEGKJbk09XOVdo5AIgdCgaNOPIhmxutbHN3rR7KU7n4uF5smO/R5WU/2tF0w8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0-beta.0_1582735759474_0.17556917434698205"},"_hasShrinkwrap":false},"1.0.0":{"name":"react-query","version":"1.0.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.6.3"},"dependencies":{"@types/react-query":"^0.3.7"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.0","dist":{"shasum":"545e9b844e946cd7e251d12b093701cb9c3cf131","integrity":"sha512-6s01ZcJlg2nyxOkjJwGENN0ag6NtvrTaL2AwNrrabb4urwSr8fO0oLzvGWZfwY1+mSusjApdXU7P0XaWxMVQAw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.0.tgz","fileCount":12,"unpackedSize":354989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVrvYCRA9TVsSAnZWagAAhLEP/0tfPtzGlyljEvQgu7TM\nweXn8hBffaJtkO6AZVFspNHTw4yCM0qVFZxah7akWjPcQWpyA5JzfoyuJHIo\n40P9/ZWXZ324vP7ET4CewrthQRzb9KMESHtFEG0S934/psHuo/uzRPAhOQNV\nz1OwvbqPBdE5XKaMQgewr+WsF4WGp4CXG/iEW8vXqrScCAXaU6Tc/lvtXql2\nSZQ6But29W70hMgSbqNKEDCQoYbfTakJGdrG7s7eOnhoeFRz1jFFVLPltyQO\n4X4CJHOg850gbjWnZg14ohmxXzascHqrUppUc3A9aA+8XJ8UN1Kjt0hIMism\ngNy+bUs/6by4p/ONM6GjC1W8xiPFLCs8RXCSITG88e8hjJFoOR1BermmJsC7\nYP2L9vdhNdpXxdVqvAMQpQEdVJBdgK7GGsj2gvyF9k27Ww/NTsL7HiNxpI8D\ntT5phGs8rlgd5WB0Xk2rhCQp6n9QHfqvOfwmZefYQ/4nzzn7odJ9F44Z79Z1\nzhdE8O7VDJIh2+UIBBjnhtaFCfx1Jf+9Q3wimms2Qwii8Lajp3JRkztYovig\n6xO9fYWqo9npgbKBsF5NtcUaGYlGmtRus39cU5I1chWDSNNXgNGTkueZlPl4\nVXEfqU8Y0zYloOlmqXG8UAX4fy1rhpG1LZcKeF3znnGaVhSe6Qx7qVEszLbO\nnLXh\r\n=NSTA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlpuqE4W5ICLGmWrez4EOk0PW7QsWbW8gIaJQmpuHwdQIgUwAtp8qPjn6iKRC+XFlDioTl7xLPaG6jK8TsI06QzFE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.0_1582742487854_0.10748734243298896"},"_hasShrinkwrap":false},"1.0.1":{"name":"react-query","version":"1.0.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.1","dist":{"shasum":"52473b4d3e517b96afd574436234cdce2d93884a","integrity":"sha512-8Aj2nL8XlEX3+wOxxXaa1yGm+x7GoDLESiNMR0wrigT1IVDg0mZvd8GFwNgiZHGn5bZjCAp/OjIVdCvRyjXjCw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.1.tgz","fileCount":12,"unpackedSize":355416,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVstwCRA9TVsSAnZWagAAt1QQAInBzkYW3g3bTUN8t2zU\njKykKolAUbJoPgZHIkwXd0gIaA2zxfD1ThX+oUVFf4dBt7M/wdQXhpX4JsFJ\nLkfMJz2TgxIjVItR5W6DKqm/QDoj5cR+2OPG4V9oUyDi3wXB4qfL/TfPZyEm\nlW0BeZAh5LBInAfwdM+AK7F95Z+/OX/yt3pzokrlgmFcSH/eSUCPV5JjRPVm\n+Nub72A6h580RFnlpixsiKe84CZadESXM1jz0lAaJr8R/UEJlH2cpwkSiwkU\nJtbPFe4X1+3Mm8bDBdxvO+GF+Zcu61FawRc33gKaLfb6MLY/zMgH7psNBcIZ\ndqFlgD2hGE5zSXBccmAl1LXABMwJ4orYZkhogoEs+19ffdd43/BAqTCk6YL1\n59wjuGwaLHaPdvIgRmzd0A4cabCCQvlYdUOJePIyzO51ojrskqUah5lfqDix\nYFfEKMjtmjeIIbU+IQTTOn7a3dykhe6tarw9sX865Y0eD6uLFBbbHHdVrHiU\nHX4SX+iP6dC26jkMvy8hKjQjBCYyVNUb6/FHEz189WDnPZvLUhfILTQD5KUU\n8kiiYIrq41OPpHXzkUsicgqTXPUw0g3CZdrkwMIVXi/XITe8doEzb7l28eqI\nep7Fxq/dmy3yHQluUB4csgEL5HOFtslMRGE4BX+RUiRLLOhA5EU2gcZGSYdP\nY5kU\r\n=MnEf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBy/ZFbNSnYMYBYAGJOfKErxE4Hq5nWzO2NpOo7drQQTAiBj3Vp/SBcVUoH4U9p3PJWx2MA1HMasB28ohZGfT9JobA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.1_1582746480213_0.2886549479984315"},"_hasShrinkwrap":false},"1.0.2":{"name":"react-query","version":"1.0.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.2","dist":{"shasum":"297b971d510a7b2f33d43f37bab17b9e3a815fde","integrity":"sha512-ayYrh5s0Pg1uzLcF34F10DnbXqvKtUHzn578o/yIkjmhWY2BoS0zp1bi2b5E/GGrVNxNu1L3XRAqwA2AC3GQRg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.2.tgz","fileCount":12,"unpackedSize":356364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVtbUCRA9TVsSAnZWagAAaIQQAJT/hHIST6bOT3ywJMip\nDG2fgQEbwYMHmrJ4/4yHEzPQFPKGhpoFl56zGPwCfmEAAtAeBI66lwdMekXa\nxY8N1JBkeQg9qgmcLHhxc5QJgmbHv/EQsT76/gUVONEFYeErDbVjRxllwcmn\nU9hshTxgYj0pPmrV0o8vGRI3a06j1ew4CWwXrPL5MxlKbjjscLFPYixruqlU\nGlx7afNrmzaehfRNJ3kLQuysUBf7nvQ9ICqTbwm+EUlYRnaA1zo46Kq7xAKO\n4sHMJiCib0zyzzJbBnLQEJoHohyZhe756fLW4zgFux3gJttINIg6y5pcxrhb\nyC+gIP+tmmxA6pYLTNH+yuTdCUonaMSQotFj1JUywOryOiwnidMHz5ueO5B6\ncdkKUJwjFpD545zkSpr7oxFXnFgJ0lqdo8xjtJjj6T47f02kfG92KEttuYBG\n8BTLdO0Tex9bTk+bNhVyNYsOyTLFTAITYZJLQQ70fIXemPuFDs3ogWCVIl81\nNERVL1X7+WU5L/7Uztc9XO28bsQSltFmtRx5T3CCF4PFD4SHpJs1ZX34gP2B\nHLyKid0Ysyr+9fgplazYVI+uVBM+6lTvVuefSCGgrSJM4MElQXumDIAQzLZQ\nCa1A7JaQncPECagHdMbmfK70Q6Eo20k0ZXAJqMXtenN7WgSWlsf1411JTVKY\nAxnM\r\n=n9sh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5CrVtHgWywrysgskQTdJrQNlQH1UxtV+1pmRv2COvMgIgLCVWb8Xbg7vdbnQloZ8/6RZEVpvqWuBwWIksb2A8x6I="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.2_1582749395338_0.9108306237101174"},"_hasShrinkwrap":false},"1.0.3":{"name":"react-query","version":"1.0.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.3","dist":{"shasum":"accc602d4967169cace3683cde5ba2d4ad371e7d","integrity":"sha512-xaaKw5SOPU/AyXf/Hs+MKVaJzxFDqLEN5w2jA112IlcO1nNy7Uaybn65zU3jyE7JWf7kEje5K2ifC2XDUknf7g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.3.tgz","fileCount":12,"unpackedSize":355034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWAKmCRA9TVsSAnZWagAAKVoP/3UCYKa+p4TOz/UdiUYe\nPCM5Z6l375eKk8AwfH9HNdx7QBvxfCR8LbNgAm5Hl2kIu5JPmU79YG4nAdiT\nYsKKUYVa2PTfFFsN5QUoZ/Re1OMlT8g8MVmNtJgsZ5aZEFEN6SWS7yZMztnp\ngKsMAmCvVFHNNhM6jSLqXbY0DRlDP47vKM04hvktHLOLBUBDz/1JL1hsNjzC\n+uya/KmS/SF53fqwI5F8tayLXQXRqGNG2304JcSnFKEbMfuyQBbJDfNuCy0e\ni+ww/Nii35g0aGYllYMsxLRfIzWUNCNO4Nov22Sc8Z4S9cPcQQEXZZp3B8FT\nkYRsQnnqj9aevAr/3KqjgkgXHUFqa1PMpXmn4mzW5wPyxnXH92kBM3S97WrF\nWUF726GDZ1JymugQXSDzN2rBN4LUH/atRr+oC+/OD1aw7UrTlo1WVJQPbPvo\ntnx5BtrLkD8cPOKstwx/Hh3B7pdhx6WnyCTLZtwa7R4j1o8L6un96DF95Iki\nMuc1qgsjrBXq2kxShJXscDSkUfgBo4W5CUWpMeTbWgpC/0OarVE4uEa/v4WI\nlVcHAjMIDH+R1rVdpAufSm7zqYh+8ahpnSvb+GArxwZkI68jr3eVl/v+Qy74\n4IzABVDmNTA4trPaeFfmCfIwq42sTptigy9eccf+rKeHyCyi79VWmPylU4QU\n4rsI\r\n=fKLn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQXMPro3RgHFZ1ccIXEWvHnPwLrUBNY46rLjaMENJ8DwIgLi4K4KaTkYF9n0MRNmWrXK+WAIx6PxjlOrjsLyVtV3k="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.3_1582826150092_0.6625874186909866"},"_hasShrinkwrap":false},"1.0.4":{"name":"react-query","version":"1.0.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.4","dist":{"shasum":"4d68c6105cc12be2eaeb6dada3d7c306e8636d72","integrity":"sha512-mEWBJPfNT8FBQ0HKmYCiLMzPpCQrJJk7E9fBuDO14sJ3hytzDqqMFHwX9X6KpZOlW2U5LDKlzuRtxR5gtgHXjA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.4.tgz","fileCount":12,"unpackedSize":353041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWAccCRA9TVsSAnZWagAAQOcP/A/spddu48ukbfJ4CkhV\nD0lP9N5Jy3vYHeJrB61nsTnvEnESYUDxDAYXDbKTZpR3sbHLBdx+qjoz+gKR\nFpkP27rsHsgh1lubYUiTqmiIbQWQIahreoCAYW7wgPj9v1CIHrtsXSK67rUI\nRkzFoGOxX3AjewSN2Jg8TwOpPzD7R1C4VffwzmnrGHnd9g2Czw7/5LbQnYk9\nUCEUk2sNzHdw/+bm4yYqDwt8ITE6MleXHTthUa+dNToUeM4HVOXJs2/9nKCZ\nUk1IunV0j2FyA0aW6zD7erJbtWMN16+yKOHcnKSz/fa81zfTzA74oi+iKdHJ\nJP2MEBvwrvVEN30DSaPBDibKFjfUAuwOnKGwjZVz0h2Ppt3a5tn7/Kli5seM\nqIHnEorTOpp1FYK24CZ9+CsWWUzU9EiShBsQegurxWXKFLZxa54auiiOAFvx\nRKjMBMFl0kGGV/BwRah6VtUrDYy6TEGEjRgMX8wSm3qRO4WqaUegIEhU7ryb\n3BWykFgArtjsNHdrQa6QCWgYEnaLY82oWt7fZitzMtElW5z9stvTQpO1WIvY\nu1RlSgowQ6h2kMk6MpY57MuKJZ044vp/lSjpHOcd2htytr2gV+ZfwiST2CBc\ntT3rWUGnfM4BTK4IVaR14qpcT5mci1Nyr4NY7PhOAugNQ2Qqki2UQX5CsHwv\ndWzG\r\n=7WAg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgyCwPaA9n7IIg8N6ntef4my2ETiahJpUtPjOKAkXSwAiEAjASTOPR36hxAns9adzvcskfkEqIsssv1iD8prCk/LLE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.4_1582827291842_0.5608162065721678"},"_hasShrinkwrap":false},"1.0.5":{"name":"react-query","version":"1.0.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.5","dist":{"shasum":"545a5ca5f7d43179d17bba9c858fa80452bf850b","integrity":"sha512-V4OuENlxQ6oKW1W0VoGZX46gVagcfpAnuZTOb4/e1jco4AZ7iDKTQvHkqLq+0VaAlwu0h6faUbUxhOWLoVqXSg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.5.tgz","fileCount":12,"unpackedSize":354980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWCkRCRA9TVsSAnZWagAApywP/1hg18X/NjuhnSCp0ICM\npMMqh5qF1Dzw1voQnJKR4tI/a6JBCFwYryC4BCD/hrczCsXGYWkUfLpWDDxy\nyKeCd6KxE+lgtZYvaZiCDgfGWL7qbG30GKjPOVnBJVz5YUqt3O67F2NQShLu\nGUqt0YACqu9NlLUI1S2TBUQWLklGO+7T4n4HKWX72pAKl3PQ/ek+Me3gLMtS\natCyZlklkf/HBrlrv9g8inCrx83VR0AbDnE2wlRx9Exeapocz/Lg6KY0Ydew\nxTdTvn8QDci0za1H4RAbUepKMRXdhPXou3khMujzfpdSUmkCruFYyypIGHVq\na/eCmrAcCHEZf5pkF3xkhAPtaiX3yUruGVxULzGP2tqct2sEDANj9JwOb3Sr\n0f6tmBEW8a86ro83v28eA7yZUwgBE5c9G8vwq8NyI2V3pdtAvMJKNQ1oqRtr\nUwaBuhKGYdeDf3CkdmYbo25TgEY1Efcl8XN59mA1CeZj2q/VkO+lNyp4sssq\ntlsOOzoXrI/FjY/deneG3LWIGdYMTTZHQfzK5PKzRZnYfzv71nVQLvU4+0W9\nIz0RXZG3xScYJnUR2AHJRWdjeuEQ7Pa2NrqdX7vEcAyd06rnfR3Uip0tpkuq\nfx4Fo2h9P9rbUl2775fekcfHP3D8JDuAbQT1uztIqcpocIVkDk98aan1UvQs\nJS5i\r\n=+/8h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFN6Bx3V+k4E6j5lJrtiqvsLqeTOFqEeMbwfsXImYGXwIhANezR/2jyo0HRp9EZq00AI7Y07bs5dycGYjgxnoX8T0p"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.5_1582835985150_0.33079362596775774"},"_hasShrinkwrap":false},"1.0.6":{"name":"react-query","version":"1.0.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.6","dist":{"shasum":"b594a7870d3142333ef8e5eab579c804ada3a0b0","integrity":"sha512-iGSVH4MedIaDRUn+WuV7+IlxS2BGJQbZzodCYHqZ9/aiw3wjZKF0+1vL90Q6uZNAJsX9ntVtbMykFxw1ritb1A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.6.tgz","fileCount":12,"unpackedSize":355367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWT3iCRA9TVsSAnZWagAA3pUP/jkZQhYi36tmDsaay049\nfTe3wX5ftmyis8L2XuIMXbfzROa4ww1G7tQ4JnOAVhS+ra3fGlRn36n+m68C\n3f8OKntV3iZtPlRKi3DOutcQnTqi/tA5UFyxpnvdVUMSFsEi+d/cnm8qTqFu\nPhnXNgX4WbpktGyU6JymfeyIDqLms2p/ODXnGsmTGvgP43S+YvLMULKZBChV\nfDz8DBK/MMnawUPbX5xxot6i/zFFYNL2A8kUDW1DFFLdmhUl01Bm5565J9mp\nVirvn9snYTidvV3lr13N0wp1gI72F3DTYCY8WSFVz+ZDr73fe/BsxdqdYiIY\nM9vIHSfphrGIOhDfk2CBEq90JzIIefGqzgSwPXEzUoNeauXUF2dD/Y7GX4zP\nGhKvb3Ifdy49BgYiL8kAaYWTTX8ocYPaPljQxDHh/RID3I9v+Z0TllqBSvGM\nqer/RmTfT6KMcAlWNpsGiBpnvWhOgPMTnFyu+pB1p+Ks+ET7LBFMuWkRBpBj\nb3EVPvLNMJKukhcrXwweWw5NEZmGqgC7W9YUZb551K8yZW6BeTkVWlt3Ut0P\nNXkE/HNoI9tHdWswFSNEEj4Ui9lxnk1N6ihN3AA9ziKzm0kePAWYaoA9lEmx\nCB+NC6LTtTLqiQYdJvCoBUiNotexbV4h/h/VPKqO7G+5bBN44sJELjhEs4MU\nmiki\r\n=PxPV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCkgXY71QBHm6YF8gzX6E/+SKp41gsERW54ZWc23m1HAIgXB0Ag0N2YgEdvy6La+DmvAt0mhZ8tRBbZJr0mFiKT7k="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.6_1582906849193_0.8600832535636442"},"_hasShrinkwrap":false},"1.0.7":{"name":"react-query","version":"1.0.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.7","dist":{"shasum":"ce73afc125b8857a3b9c7b6cf554cae94311ed18","integrity":"sha512-m0of9P+vJofHWt2DJSObFKssvsXICOQJOdcjySjrxAS8q6uIH1i8pwgiGIr339iESsEz75fcQH2HZil6yBWEgg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.7.tgz","fileCount":12,"unpackedSize":356995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWYAkCRA9TVsSAnZWagAAt+EP/2i8a8QHo7YTPRCUJ4g/\nXhVn/h4xsuJG9xcH1XmZFCt5gy7yEMVSb9XE9A64CADAHjliwtCrlr417QWx\nHBatJGeo9A+BXHM3BsSkGwjKeJFoFWQfPXAVirsmzTK+pGyX72zp7o9CGqJt\ndgCWHikg3ftqZ9Eb3HuajYa2ukPf0Fi7n2F/p3VNX0rmTVQPaLdtE35SBRxF\nYZ2iu37O/qJ5KOFAOJKaXFV0FIbME4Q2WAUVw/Com5AI5IGxeVQm+GniVk6z\nk7UyV+mduxRclit21erZwoiJJRmsP3BjnXmVTlHx2DmDDs8yI0wrwXrRtkHB\nM3083jIJsH5ZpARLtskE//4UZyE6qUrwcueIJcaCn4eOayk9466hWnABBx3O\neRmw5cOqpX80O8B/n/A5lePHncku0J/CsLN7LzSZbQkACej1nSHAcXqKkKIA\nhGgG57wWBGurzkP+tOiqt22Ke0hlRJ0ofqotUmpIPQXrMTTAizRqD7XsVh/J\nEQS/7MGBMy6CrPVY1HdJhK/endcVQ25AEXHHfH6WaKho1oyytfxZw1OEW/NT\nhW4ehRjPv4qMWguf+DAn74NOgaZrNJJGumf9N2tui3htAiX+OfoJw/1xnYmD\nFV+7l7sEvXqoiKS30lH59EQzrIkbPTPJ4fSo4i4NstCuqgys4Nqi0eLIv0bY\nBdkB\r\n=LlaL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExhU/kBwJJ2HD1BCSwD6WX/vwcWCGnF6x+lLVEmI85aAiAd3Od2J+pqGYrrGZaJ+W0agi1pKo0K1IoIluQZp+235g=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.7_1582923811938_0.9048521802733422"},"_hasShrinkwrap":false},"1.0.8":{"name":"react-query","version":"1.0.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.8","dist":{"shasum":"f577a4992d2cd553316ce37491ce2ad728015ede","integrity":"sha512-KQ9X0qABkCJJVxc7GkYqcvunjVhizG6L+cj2FzBCZm9A1zFWcEkH5g6FFb/bXE1vqoLFygeQJYVtyed4ogGaWQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.8.tgz","fileCount":12,"unpackedSize":358430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXVSpCRA9TVsSAnZWagAAr3UP/1j/KEAvDcPD3I6tBIrB\n+7bwqmdiPoj5+c4vfa92dmS+iUVtKQiY3UkRN+XMc5raOm1MW/t4rt4FjBrO\n2XFlttOwrAXaitR0gao5LutZizDjA49vZePwIZ7cyckuPrlEUuIBrg//nmgo\nnpTNSx75NL3llvKGrkWY95nNOv99NZeyJctVMUBWQmdhpQBPWtnUoVCUjGdl\nAYmVMbZCkkg0otlr/Z0TPjdSHFBmCB58oFNYV44UQHP8dIx6Wb3TpeV6ng7x\nUNG4W1jsJrlWinMItXZc+/SpKcetC/9i/YEDBRcITkplPhOQSWDM06mMhpU+\n1Q5rvVn8doEt2m624K1SG0j6BA5fMxx28n1o+Y37TmE8aopiLPoF6AjQ7gJc\nbnLmiSXjblWfVxrBNODw8TYbJEmzUHvaV3DfnGLSpDRw5yf6qNilhtQCyeyX\nGpK4eqvOaboaEPHAEuJ4iJR0Q0MU4LI3Lw59+J5U8UAMzjiuH5Z9DorWsAhq\nbweHkpXRiCBb1nSLGcxU3w84ZFeZaQ1dKauknoEyzly4lJJgH/e1OFm7SVh/\nZ4WL0DS3Bo2jdk9aHg1hlS0buMtiv22n0qyVfyPwpCuh401e1T9MAmSU00kT\nJ4btBANW7GqUzp+PPoMoydbtgk8S3TUmVJXHVDLA93ixXcfx2hNWLDFb9w7w\nbV27\r\n=tNvx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrTgFxmmvwO6qcUPJY2vMkvS2a4KopdPvFXckvfLa9DwIgSEaw5dmvQZR6568V97BKQJEBiuxIe0RUbY4k/e24+Gs="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.8_1583174825106_0.18814929827542803"},"_hasShrinkwrap":false},"1.0.9":{"name":"react-query","version":"1.0.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.9","dist":{"shasum":"65be5493627a8c76aebb2999d4727a2516e76a69","integrity":"sha512-QmmfOpro0ZcQt0I7lsEjiCxIN+9fQKExPrt7n8lIPrJPD8Y0loj7EJjm4blyDSHm/onqwj4PM3cD2HwxXCa/+w==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.9.tgz","fileCount":12,"unpackedSize":360906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXVrCCRA9TVsSAnZWagAA9HcP/jnodXxO2BAvjcSp/Y1U\nITo6R0DSfiEtFIbK/XWrjoPwVFiYMHXyO+/j9+wOxNWHi7LOu4MQ8+tbIck4\n37aYijJd1Aj6c5ulVsnjsBwG5aYVWGH76G0TPZN5530/wFHWNSdNS0XqzARW\nWoUMEw4ljUaoxQgS8GJwqpQWXtlotC/YtSFBIggCxKcAI0Pv+v/AKCmElRUO\nm7jvDOmBN+bGV2ZOFIZCDzZu/PQV72RZ6mtZChd+gSxQOq8hKJuwJ34zzITU\nPGHHVJrtbFjE7qPMvw9VEb5BKWWszkR1+uGbhgGAW+8tiAYAXf9Ih1nReLJR\nI7dRMT+b9FNJu4flpN15yerPoCW0avxu/lGyg/rjXN5y4lxAEwY0jvS+D1BD\nt7F7yPY1ZWdH/yEtks4wQBoTCIQlwkIzYLHfYwkbMbGRNwvm6kgEZ9aOmNOL\ndzrSHk2RywMAyxD9JNTnkik0v6dFoCH8MRB5QhOxCUgVgfCpsrMO3V2njLs4\n7FdO3jd58bCe/R/kP7oEGjijRIktDhKZIB8C3HZhaCJhe6eTblWvgLE8hOZg\nkP1id81pgrPfWf4Ucb6ZVb+RHtl8uW64UKGTFagb8pmkw4EL3/pe1oC3m0b8\nFK/ZO09HyLMSyN695s7G1IEgwKdOw/D+nvOUwfKQb+OoSJHtQ7ACABF5vpQ6\nlim/\r\n=22Sz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRFXIADruwCYbKcaR+6b5Y9oUgPFrmxXgTuP2koCuhVgIgIaFXrJeuT/+LCC5h062QwpmIqxYpE9FZttGhOGCKQCg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.9_1583176385405_0.24551358681840507"},"_hasShrinkwrap":false},"1.0.10":{"name":"react-query","version":"1.0.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"dist/index.js","module":"dist/index.es.js","browser":"dist/index.js","unpkg":"dist/index.min.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@ampproject/rollup-plugin-closure-compiler":"^0.22.2","@babel/core":"^7.8.4","@babel/preset-env":"^7.8.4","@babel/preset-react":"^7.8.3","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.31.1","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.10","dist":{"shasum":"439311ce6a159637f8243cf9669c3ad1e38e9987","integrity":"sha512-51UQljqzd9/PrfFy6RQCWdK+MS8kZr/ncLSwWmlzVJQbRPOZlAXXETiapXAsp66FKjYVOHkpf0s4KdABMNRdZA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.10.tgz","fileCount":12,"unpackedSize":361281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXWOtCRA9TVsSAnZWagAAOqkP/3VQSqz0rJUij9QnDiTL\n+dNMu3LrD3o/+E8Ltlt/N/EkvtrlTQO+HepjzVcF7pq4kMQ8KbNSux6P/o7m\ntwif/pPe7S92uC7TFf1rW6Or9oPEYQR3wChvpNJYxpBRpW443JQI6R4uFUcD\nV4ehdSvPlp/UPt+6eVQvo4+5Oh5moPaPy50NOJ5R7rFckKKBb92WWdbxDiTn\nilGmWqiGzudGi73kHXAVgBfaFqzBSnl+B+Fzxmyj/vbdnAYhZdN2ZBnXM7xz\nwPJGL0D7rm25s4r+AV7ng45V4pjX+jnQcTizGCYcFN+TgFOP9kXqOdStjp6D\nRq4PCnLNjMEvpuxC77HTLjIjQu3vj+zUqXLrBXA4LDAonaWIMJs1B6XtuXUU\nJoOcInw8wPnPn5XXawEDydN1yjSrV0ACnOwC25zhuhYpeUdLttWW0eWrRLhK\nBVVg75WrTScV0T8Jmr59hqLC3EyuZqynjBPUOakdk9OaZHCgq2Utn5kDd5tX\nZuIbyoZI+Fv9/V5r2G8LSB13v+eOKva+64oRBWwiX7S02Hmk4cXwL478GqqM\nO9m8gWUtJdasS9ENXlmLxoLdxJ0EMD8TLhMfH8FFbQnW/ZtqtlLbLe5rtKX4\nLrz7dPaZzN/LqMDP4yltcOVpNKRIMZwTtbwU8GQcfnIqx3A17fITvdhRsbsn\n7eWX\r\n=ndZ2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXFODRPBpO0ik7PfFtPmmBq4xsykdcKignRYT5wo6hXAIgV+95B35+mpxTdU9iWPyK3ondireFkToLaftVp025hmY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.10_1583178669105_0.46452986304641186"},"_hasShrinkwrap":false},"1.0.11":{"name":"react-query","version":"1.0.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.11","dist":{"shasum":"58e193e081500c08e5c9d975a9b359f375d0cfeb","integrity":"sha512-tATAH7aXwBya3stF6K17frk+sq3WkPIJvZR+FR+gGomd4mIFfW5FwB99mGPhONcSMNFObfQFcneCdsQsyDq78A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.11.tgz","fileCount":13,"unpackedSize":364814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeX+OZCRA9TVsSAnZWagAA1VgP/29jZqHYbEECeiUbpAY7\nnUqh8QZkiwfSzh2XzmnUEiW8Oeol8dgku1Clf2QZQ8Mcw3ZiuFcdnZIrqgfW\nByzqRHfbtJ2wl078oeFt6HdE+56p7NV0Ae0KDZsN6tNxS3t2dERA+1zMg3Y7\nezel8oa8WAGr35b9ELqGgThkwUZet0jvnHUazmbZcDd4v1KLz8t9JkijVOkT\nVih10RcJ9xT1ihSgOEunXG80nIcynsjnMmhNoEOoOzfrt67jhlzeGTDZtC0j\nU/4xvhiZDc9WihrFGcFzF/i4ob+iSFz4Pi7YFmPkh2YgdLfCr060CmW7CXWk\n/UafTvwwmth3dDtY1nc1gUJW24+KwXuHvnu22adHv8EJmFGgvOasElTTPPLy\nuodfhW/uKOO1JG975bLXsDLfiU0NywZyBH7eUdD6L3zE8QDe46FlxDEOGV7L\nUZN/vY/l+JRGXQS0OrZ3LmwwQQ8AhK/Nw/kj9UFhu7QUWCMgdG9hDmb9a7Z6\nH/ILJnBQ9xs3h43maZm4X/u88sbmFvAWY58fMxHeV0sy4zxLBCJrk0nJDR+g\n3uhXGfP/Nv1LtF1V5BY3ME8bviGrm+fAeST7DmXuQhOKuiIUEP1G6IDgZxW0\nNNTzQbjbs9ag/FgBi78cR8yPAiiS2bJKCWov/T3gnrhM3vfkTNlOTk4jNxvv\n+YZR\r\n=M9ux\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/r0itdaLVgoKVTTBamKntMQuOFDVyQ+20cN4tKy2ykAiABo75Es4w7BaCfzf4KTielsy9fxrd28xYrInNz7bo11w=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.11_1583342488595_0.3956894604857093"},"_hasShrinkwrap":false},"1.0.12":{"name":"react-query","version":"1.0.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.12","dist":{"shasum":"b355d3e09d5a7844be193b6fddc9e7983c5caa87","integrity":"sha512-ETLjgJ9E9HhyGNK+NCp0OEfcpf1Y/XRkd+LWX4qmwk9ky1IDbKjsww/VfLDZVwsA14Iq71VPa5moRzJPheqNYg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.12.tgz","fileCount":13,"unpackedSize":364900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeX+zwCRA9TVsSAnZWagAA/pwP/3H+xeu+9NDi7+vSUper\nxlLK6F0ulQZbB+UkoB64H4QsPon0PEjRJ9duPHc04w7KgMqzyOhRyUzva8RQ\nVChLfiDttbaPsSAxHu9IdmzMbT4zs5qVQqyaqkM4ANIZsApOIcZyUGN8M163\nJ4xwmmXJi03j2CmXZLWMss66LeYkOsP0nfGBBlNNvMFVM5OtCmSg+isDZQDA\nN/vWtJZlX3YDuSfgQBH/emHTMllMsFgsKVGz3VV2UkU24Y9RT4bE4j1vR7Mq\n1AqWqzjH34UHuq9bsFZPyraAdNe4WCU/J5oZktHheM+QQmq96ooH877YOC3U\nA3mAd4EEaiWnuQXk/kOn3e0sLK2fknaQVRlQ/Z24b5GYRHWKqHj8uL3eSTXC\nrH1fOKi/mgB2mqtFsUERicxiuSEKEbxNz7YSYc3qKiKoNQjhbhdz/3SZjIqe\n4ThJnBntLB9jFKM1YEngtdAjNOm5swuj6UtcNy7yh/EmppAT0EDrDVYPgnwn\nzeGwEIemTsf/MWSUvR+EAME6Sqa6Qu+6+8kBosoeueY3QCAJMdB/LNDDc6FQ\n4HksBqT94dx8/HDbXQSdw5tQ3Tn2+ZQJnh4lpapaWzqEPHBJglO8UglTlPvy\ny+NxzNHbQ0OZ+EBZuh7oQEDmKVZhxQRooxsWj5E8VkrwN+GOgBX1YKnOdArv\nj6LU\r\n=Jhes\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDO+OTilmO/6nNZragui3EOEPl8qYEcNdndg/fw1p+b7wIgNFR9BlO5KzrYRwzPCMvECHgaA7TAKKLJ9JvSCJ5YzVg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.12_1583344880166_0.36384493090364756"},"_hasShrinkwrap":false},"1.0.13":{"name":"react-query","version":"1.0.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.13","dist":{"shasum":"2f7c328fe8f8ba573d66e27bd9fc209487e00397","integrity":"sha512-HLPL+vCjrZJuytPqW9gGarU3XMZ5O5+z89aB8hPRetaljLihSlpfNO+fRynDKBHJ1n6rJi3kupDkon9Byeivgg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.13.tgz","fileCount":13,"unpackedSize":366582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYAjZCRA9TVsSAnZWagAAd84P/0UivzoEwpeNjsqAvkJP\nI1qw9QTaeSIJX/iDz3z/4rpSXj84qVbCzLKoHw21NBK34UGy3dVmX8mBL1AF\niBrWMTspCvOcafOuE171ZRbYbGQwI1QyDjGNzO9OCULGjyeihygEgUG/MkHm\nZQolngWdUXFzcQwC0KxbYiibbbxeTQqq4mDTNXaBzulkL0hfDE0amQnSFsat\n/G17EfZqN8IJ4eh+nm1Cmb5EaUJmnpGbfjIsi+2cm/5c7+MxOvHtZL0Puebv\nPNqonc+az8wYt6V5W90i964p9/YEXFd626/ckJXAE+e1YrMnKQNHwj/tgIAb\nN8VH4XLWNkHnlWX82/GvwgO0p4CsQTXXM/wwurluTZZ1/iOK3r4FPxCIsCEt\npp1FimWcmR9x35hV91oDlTF9E2HwE0LT8oK8vObymccQXpzVlWaXwN+w+vM2\nvd4eF9CD+3NDaXV4Tkx40BpoROru/FEL7o331B5oB2U0nzHhZTfHk+AS71RZ\nEuo1dpDBV8/09kuZy1EwSI4RSAXdb1dSJX5YlajrMnQwOFjovJpDy54duVX+\nrwvirC6Ln6irnJ08Mg4OgzGCbQAfH7uqC0IS5X9AsKApbKNqf45a2zKtyXhQ\nW67D66Fk+XrG03ckWP2kT1/oMcvdBOCZn3i8jbMO7FUCzY83oJsgF6ejJOr5\njXxE\r\n=XxjG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGHpvWzPenNdVW/lRylGlFfGslTrwY2w+IdVaMumzMvpAiEAkQ/172/IuPUdKuz2RUFzw0AXvs+kv1LhA6WJ4T7r2WI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.13_1583352024435_0.9307876477994639"},"_hasShrinkwrap":false},"1.0.14":{"name":"react-query","version":"1.0.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.14","dist":{"shasum":"a3c431fb045b60477fd9228aa0aecdfedb10b1f2","integrity":"sha512-wBcGcdWRvVB5XYY4GQGartaMWH6NhzH5W1ADK24EvKbuPWFGTu2zJ4Oq11NJzl35SnJg1hlBY9EZfb2bpxpp2A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.14.tgz","fileCount":13,"unpackedSize":366881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYBfnCRA9TVsSAnZWagAAZXoP/2t4HWuooclM/GmPZlVA\nIcy7ixkckuljGCnMMBh62dvRoeB9GZ0VnkbanHD+8fP3f3bOKiwR85YsWPRq\nRIDbjALLMrYHX25IXSvGeuNDTmAIYNYs8zzdK3vEVZmwDj4yOyFfmiCL5lQ2\nNoMWIhVTLQjYVFstdp0DZ7OfuyOvqtdBnLcnsu0XXZ2Ws7on56IbTYKxeT+I\nzUVlPn1qtbEsIhA1MborGoXmIV+H+JSeNSm92ZiuWAwiJ9Wod5ZSgKwPGFH8\noa2a54paxQjRd5mpMgOrRe3AaVoqBTDSfo+Myexmy4rWfEa7RlaAERc2255s\nAjPJExUAbsk5pnqMCDh+I4sqNZWJwvWfXRxa9VkdeYZka7msskIvUQD/PvE8\nZi5LDvWKZUf722Zd+i/UsL1v9oLsEyH2ADYtq9Fb6tO+RSWTkrkFlwZxv+Za\nwR5xIEj1MWlUIlAVj46mtFSd0MAnGwEagEqlk+CKmm30+0TiiByJ16n8LVyE\nlX/+cDGSXui66Y/wNs1NOh4+igYqlh3tZSVB/mMW6pssMSoWEQfTFId2ANce\nsS5ObiB3T0iAR6G/KXkYcDrkQGXQp0vEUwsFdZX6tR3vWRL5YqEnabuGygVo\n7ZpE4l0NAMWXc3YwXFfKHkNWXfU6jJzx3E60QMBUaNvo8CEh2ZfFqTwTfK9C\n8jzT\r\n=5pzw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfgF6oPnLh/BQrTLjbp/bdekLWvxaaGwiB0KmvSkw6XwIhAK6ugq21IXzrvHl5AGIDtSA3xWArDex78BbeYSLiSUds"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.14_1583355878973_0.49941209640261497"},"_hasShrinkwrap":false},"1.0.15":{"name":"react-query","version":"1.0.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.15","dist":{"shasum":"73737b238434a619f4ba1b65e3c2e8fec8fa42b5","integrity":"sha512-ZjFCrG4pTdI6a3MY71SzfoXyJmlsdANWCIiYrYLAaAV1RqWlcCgBR+OvD0CGEzVo8iaERXtA73n54rLbxwGTXg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.15.tgz","fileCount":13,"unpackedSize":368878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYCrQCRA9TVsSAnZWagAAQskP/jgzz46cpBW2Ag/3c5BW\nOFNLqrfCQg1JOAL9AjbBzdKbjlyLT/DT22oabfP6Sy2iJCjbHpIFvNHlO0Yc\nqgJAuq39kpvdpXRYwnGb4zJn8mzZXpYj8DaDzR1vjUvRI0mJWcXbBc7gRSLL\nPbOZFB2OfmENfdQus0OpQ7c4YbBSX5AN/CpggdDTQlHyTkAmWSZWWa+dfVPh\nqGocbeXwNvwDjgM3gURVsuLhyRjQKo7v3HiMaCeePc8XGjdUGpMMHAVhPPzT\nByWzBCrkTTgEXTIJM6HsrAo6PGC8DjnKCHVpb1e5rmwm+WWLl0WO1o9efp55\nNgJUm7OubyaN4/Nx3zvTNjILJ3sQ/c1edk/SHVGRpoxDAoPWefhDmBZBM7gq\nIdcmOc/kf6ZEX7gWgoK8NlID2Zccr0JxawRPeXb+avGVEJQNi288BfQUgBUp\nzzKr8oVM5+3ddnTfy7quVWAA1IfXorBOgeu1OAmKglIjAe96rmKhfyllJmoJ\nBq6kA7jnLsHCStXt0hrw0NmcuPj3tH6WGmLOcR6uVKnjPTb+PFlEwHCODzS1\nRWhQqeH+8OVUcDvdj7As8eX+J4VUBvUrI6G5IdZ9YFKiEmmPntJ6t4PodeQz\n4m16v+dBEMr1bmFDhWqZdxhXBv27zy0S+2ByelcoAnGhCyzHRJ0xUblBMzS0\n1WhV\r\n=A+F/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG3htieFOGwN4m1Wp9QytlyPM8da1p+OssKsmo6C0vyAAiB54CrvgT3UsolSd6yMcJvNsEiTh5sjJO5sOXCGSmcaxw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.15_1583360717243_0.9326089018385553"},"_hasShrinkwrap":false},"1.0.16":{"name":"react-query","version":"1.0.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.16","dist":{"shasum":"00dfeaac801d5e4be68b2b72fc35b51951152094","integrity":"sha512-q/qQYG5+ihAGTxI7kOL86ACBO3OwFHvLno+N4WqjavSRTkiqoIVKa8C3rZU1pUz26xVnXwdXmrxCOHhlAVzDcw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.16.tgz","fileCount":13,"unpackedSize":374158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYT0nCRA9TVsSAnZWagAAAXcP/Rrt0f8ni+nuIXreVuqr\nWrPgS/vx86k+7fo/NGsCtOaRcKnj7Jtn9lbiMVPWKhOHh2NsbUkpMebyjfAj\nrboTWYe0Kzdr3H8uu2584kl7icWAAr+koMvUbgJ8gHoAYRFhBgtFPKRq/oL3\ngJ1K0rJbIB5lbbpRA8M9xc9FiGaN9T+ymAPqn1ucwcdElV8HcJUvbmBRiHQc\ngtUOIO579YAIj+S3i/0GCPOsk0cLyDKRoBFOFP4pFiOKYhc0tm/vCrtTJb4j\n5rO4CJCbsATwVkrF1I8an7PYl1NYRkrPY6vF4J20Kcu9AH6LiieL4Zpaglyf\nM8gxpYeTKQbhYN0+x+mnbcfVECAe81Y3DSg+fSUCAjY785KfnUPlBAdGuVad\n44y6f9HUJIQ7pDi6FIaGIpSn5K+DmD9ekMdqV/KOQTeKY3KmCaBemEKq4c1e\ndoaFcXJ6WF/ERc+mZRd+o0vOh0Ex7JDE5scgm99eZyqzJF9RJv+vcwFhBPwG\n7wb6uBHu42ZcrWhv//RYN+OVJSsyvOlnpo8c0ehFC1VRwGafaKE36kcDQEQx\nRnGlGujbTIchXJyFvyLa+AmLW1ggDpbuX4EqyvuqH1IW3nacBMmU3odUE31o\nUYKvubSV1JC18tzqrAj3AVB8V1/+qdDyhRUL4iJybxetb9H/1/SQSrTVRkc8\nh+WH\r\n=GiCs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoXHGKObN1TECYvRvLJ3jLBEI2l1AR9l4fLnI9Gx89WAIgPrnf6G273no3/hVvMHodbpETi3cjExYkWeGJbyOhFcw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.16_1583430950614_0.23100630890036888"},"_hasShrinkwrap":false},"1.0.17":{"name":"react-query","version":"1.0.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublish":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.17","dist":{"shasum":"577c0b2cf021f6ecb662085fa1f84679160bcb3f","integrity":"sha512-D8L4xt+k+19FKhFACzMRLlnGUHENa+Erc7AN/0jHzFUF4sWaMEu0r2rocIra48nH9McEXGE8G3VWBxAcg3+3ug==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.17.tgz","fileCount":13,"unpackedSize":374734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYmZ4CRA9TVsSAnZWagAAMGoP/3I1QCcFIz1TJoBfJLrh\nirnGiJQdVXPPIhIyZd+5f4crQT991Jv/ZlO19tK+fNtHpCwLnKI549YXgVJV\nD1Kr78+Z+6y3OdswuKdabc+rXcLMJFy+o72OR0Fb0k5Uexv81ru3/1UiwNbU\nrooQhwiOpaAjeKPaXL4IA34ILNJq/k6t33RKBdIb3/jAnGNZl6TMmzRdVF63\nM68U6ZY8l0j1J4HTVODNjgCde9v9tl4Q3L05AYSy0UVwvd/GYSB8H+4aIvTO\nANfwxsNVacp0FZ+iiyugHmptvlaX9C5IdIZjL7N/HvZD/XNcj8bChoVZolwo\nQDYy0j9fUzE6ouBJ6a/EItftEk3lNZvBXldShT1enxye3CkqmHKYxZQBHVv1\ndTVSQeZrf1ShoC7T4JxtZ5PG0vBxUreLNjWP30WgzjlLOiaD5qPaDxxheGxj\nDyMsyk4tsssF1lj4JuZmPKRKS3BI/d2jYZVSDiMslKDMBLGHBuUfAUYfNttN\nT0MTtKz0WkbH++K0xKGM8uITMofk2/Omh0TJxTyB2rO8wXwXMLL+mKc2Erpa\ntk7Fq/74aZazZhodLS3AHSg4KwUz6Ja4MenDkvpY0igXqkV84DP5PiVhUu+k\nkIlKsWBlnwVpRh5sNrkG8T7XxzO8i7dw51e1rgFzPWrWguD41GWOZdlQ+dUD\nxupa\r\n=Apty\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTrC6WinChnZ0sfvBPSgulY7E73G6Ur4NX69dru4Qi2AiEAggL85GyGwb81BQYN5AVpkqbRkSMfCe7xnwiOLzouo/c="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.17_1583507063348_0.6646532576865003"},"_hasShrinkwrap":false},"1.0.18":{"name":"react-query","version":"1.0.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublish":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.18","dist":{"shasum":"27089b716166cb5139b3aede467575851975de03","integrity":"sha512-wF4WqPbU/sMQlAmB0cB668QVRX4nuu7JCxR8UyLUMrQCqWW4XXu8HbrCyX0uRucja2QHHskCCrt+x3lO7d684g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.18.tgz","fileCount":13,"unpackedSize":375126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYoSYCRA9TVsSAnZWagAAjmsQAIr4NwvbW09DoX6Z6FlX\nQ3Kz4FpvRLNlTJrwXJXk4IbmHzo6F/YCpmNDtFk9knJv5LJp4N8Xndj/u2qQ\n+L31pl+dP/3wnXTh2E+uiixPSWsE8PvtBVEE+klxxVgTAdC4xamX8KPuWjw3\njv/XVtbIFAnmSAy+60dp+CWUDmPqkWCsq3tb3yIsz/Zh//RL5FGaefGnZVlz\nST7I6V/ehMJzxEgjZdIHBT7Ui2kCZeX4j4xC8dF5D4Qd5Sc+ewLzkDaEC0Hy\n2L0vMnpLJ3sDNcoPKmZydYloyJp63BNoMi7sreexX/XXHfeIf1ZeKfAHTkci\nk+dy3ibTi9XSd8pz6j2vlCkn4A8RCziI4TyO2ten0TRacL5uv6FRyaaFaSoE\n0ttWsr02W2eZai6P3NolPZHnvSPnYsSjO6dN4ucpP4Q7c9rWzM/VrpPAYPcT\n61pHe7FYIpWSKhFskr94Cr0ziEOHM0sOm2jWsyvZ83qX6WLkc8zFx+YqT/Z0\nYAtXuiFfjRjNBu9vZXjT7VU9bN/rfYwzlLhAHbUbjJ6BCJE4OePx6z17Igos\nZw7cTFqZpPw+EoNwaYwXtt3DQQHYCgwMX9JylRpjaJj0EdXEQFC0VGb/1qiD\n+iRUjw3GAmH5tpzoOuv/LRkabaiEtx0H85NAsEE483XM7x5SZ9cme9yUu0TB\nJ+EE\r\n=cKi4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtgvAFKAtau7E7J/kUfh+0bRLtm9EHdeLrMI0bxpwEYAiBdeSBfnb/Bj9oKq5c/4/cC5H4dgPTxGloliLO2lSB/kg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.18_1583514775596_0.046833609606783844"},"_hasShrinkwrap":false},"1.0.19":{"name":"react-query","version":"1.0.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublish":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.19","dist":{"shasum":"5daaefef845c34582e4d3931814544684732edd6","integrity":"sha512-euwbF+XMCYkNZbJTIhhVtZtk3Uat56qMkcjsJ1fpTO8NKKKhSojun2CNY6MWj7R6Cna8eLQdAvRO1tHgQZUukA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.19.tgz","fileCount":13,"unpackedSize":378009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYopQCRA9TVsSAnZWagAAMJcP/j/9OGdHvFC1rO9Wyg+h\nnNdQZH7l3SCPRP1Pxb/4WZKuupV8MD8W8O2EDSvuPUiYDy16Bx7texsUsk4K\nHJL9dOeh3TDhLnJdOpB9kB6Rd71sMW2UTLc6lr35+8awPw+AkV+U00/cuMzw\nhVCaHBBRrhb8Rx+TzrQ86iEy8Ug52WFfBxZ96cEGLqzvcgPV/hdkUjT9V23A\n3VORsn80ei8+MOcRN92OrzrRg72NXLjNAgfAacfeZrnSFIXc/UKjQ0h+7ssA\nSFu53FOdVUJNg3vdtuy/xLPIVG7cO9QPw4iCDT0hBYjZ66lCbUG/Mbakr3rY\nf9/uZYGArWqgYBDEiNbo1AqZEaedAtJ6dOZaZnKAxujRHYlRx0RsZBIFC18C\nr3/RucjvSi78Tf0wP+st9xG/K0fJBe/d92iMS4aFRYbnpMPlvZiRhgO+kZGv\n6UumOrtd6RFy6mFrbCQiq5cYN+iAPP2m7tmAEjrIXctl6i+NK8TH4OepBXhY\nUDvg4GOh8k4HZLaK6oMehKDXOMovDGJO0V7J/3YdFl6CwsbXPo6KEHt/lhAo\nIBgQkNXC0iOreNvr+G2p25OOQ61YtbvvYXTqQX2PV/EC5rKKXZkRpCTHTAkr\nzmBl55SszrwIhLvwfVWuyBJih7N915S8b5jlB2tOsFjh7o7zcDK2TX9yd1Ee\n1UIQ\r\n=FMyB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL9J0fV1eWiqVeIM0u55IeTAVichE14QuEP1gr6HZsGAIhAKkhuJe80bVYAw04Zyrw6rQNgDq5fzYROVSd70oYYhV/"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.19_1583516239745_0.3108476554091497"},"_hasShrinkwrap":false},"1.0.20":{"name":"react-query","version":"1.0.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublish":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.20","dist":{"shasum":"90eb26aebb15804ccb3e068db5ce98f9a51c1d7d","integrity":"sha512-7vcuffdEGEMafZvilNM+iMpa1sUAr6KHRZB+662+OTzkX4hL2OE/9ARA4/uNMoDDeFU+zH6uZWuqG40JwYW+Iw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.20.tgz","fileCount":11,"unpackedSize":282141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYpBgCRA9TVsSAnZWagAAKAUQAJKA1GCP+zVRBXRlypRe\nlKNbjLyzT1UwHwLswsqZznXed6xKNqFbjRBWX8/CcQXf28k3nsxHWHnT0W+7\nDlFoYJtvJ7mTQRLDCjWtZlx7AX2XN0+llKtk86sgiwSQB+fvtFdCy6r6KmXP\nsf1bSYjglTBKOP/e0kJptxifqGabt4BrUMOByGlXRyzj+5URhIeIGqa24zPT\nN5nY+iOJAtbbC9HZCz07FnzoaTjsXy3Ir7LAqebbHzcSksZAZhCidj1CshgQ\n3ZDciWSNFsUSiEd65buxS2tf8B/DmMh7HH8eq+bmp+jwxYNgVKya+Sbouhv6\nb277F5jXv/YdVNlnRFm/leoM9OdB8T5p3Zb8Hpdtyh0SB3HTdxeSxibw/NwW\nyboL+M5PbKLB90BaYL1ypooP1WbpIgpOTQxavwSFZD8BdpINyJpYAI8X/LDz\nQon1fmZs6+w7+XEUDBcelbNtmbpKeoHJT+6+EQaIUfS1MsEjKBdMvgO8hLmb\no2Xv6mm96d42U6/jbtMmvCAcWvrxesTOrjOpct0jFB6wjdjMvGoI6Bwhnw4n\nxhycVBR+k0IeVKXwfXxvMp//fSJkgQkmRt4lWcqrhAv0AJixSPGKLFzNWnbU\nZ8HfxQ9TdhTE1rQ3iYO6ZhvjXg1YYV3+SX4VT+ihKSJwgc/3EIoIAq1hOqZ8\nZ56H\r\n=jl2o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBR02HLrgee0zwH2PTVT+R67IsJD8AB4OeuHPWoFi+jAiEAvirllYPPHgKu2F9b7mV3gc7e8eR0QXu3f8iMmejLfPk="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.20_1583517792155_0.819324887801502"},"_hasShrinkwrap":false},"1.0.21":{"name":"react-query","version":"1.0.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublish":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.21","dist":{"shasum":"1c0a90a5d507cb3c495fdd95b258e0d021451ff4","integrity":"sha512-dW8ag8y2DHQ1I8w8SYRcU1DAxF/zC4MzIvH1V/5R+/oIJcV1FIi8QNjwD9b/Jpp6sS8kiIe7oGSj1iQdzONKEA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.21.tgz","fileCount":11,"unpackedSize":282390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYpuZCRA9TVsSAnZWagAAhqsP/19P0mCOeUFXKn06c8VD\nlE8YDyexTDw41pvyPuTphxrnVk4Uka788slgMZIaOHcrheUoHF8QWx/YtOxc\nfM6dc/vRdAOn7IOmtEU6qxzUbdy8NDldumgTR7HfE5BuHeAAE9JKwssQ2FeU\nuHEpZ5mNc/8D4D8p9qtUtOQRgCxyaNJ5KfSuqLLK1mS1XuMyX8o9BIxbSiSH\ndrFDokgfMCCMdTsP4H1oSYBHQs/+AQ5zgab/Fa1lGcggQHVNQbO1Gw78uaDe\nBkxQIRUZcNxgNxWsnhGRNE+fXaKB2h0Eu65LEML7QScGEOE/CjNUQUUJq4V8\nVgWk9vdRCXgA6KcCB/NhOlbxi/i0B3YTvqtCKggHsHlMN53dVwrn6uB0bdDN\nqHC00V9sFCrgu+M3jZdNlTb3gHK/xSYDZzLQ5wkD4t8xA7mWdBFSKQitKEzT\n5kBrKqKDuiwhgCcv+Vjc2Zl7ta4YJKec0HCXAvbRHh6IDwreSZdpfK8zKhL0\n8TaqWONmtK7WQrnvr0V46KEOHj14dkR7XUBOzTeqfZbSX1NKwtjbXud1FE3V\nYLdW5KAICKnN6WEhO2iYICu3MbRfCYRXKtcPFm5il9kzTfinIv5/JqWxzMA5\n0CCRxV/gkqW/+qQ08KbSf+C8fjE+9M2tttQ57Z1/fJGECrqCg/9yO5nE/mGl\nyw4X\r\n=nuF4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuUHFK0QodRQnrNkrc7rzzQhgZ+NKp0E8Gt3TOTHK7SAIgL02so3AffAf7hq61+n1urfb1TVjNw2B0ZDHgTdwObKE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.21_1583520664576_0.3885275542190012"},"_hasShrinkwrap":false},"1.0.22":{"name":"react-query","version":"1.0.22","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.22","dist":{"shasum":"a48f3e616015f7369a3342b350c2b64b9ca6580e","integrity":"sha512-xJVK/c6lRZR6xi6sZrBnroZDrYAdQVVGSiwNONQdBrV3WEmIAJaSse5D8H+UW1BNdceNN036OnSxq9s3hRtClQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.22.tgz","fileCount":11,"unpackedSize":282906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYqlvCRA9TVsSAnZWagAAN1EP/j5OIl/sWPJPoCuMdAvv\nvSCABcM97xA/tnnid9TfqCiuGP/M1KyPxkEKGzxYfDJu5GULAaq6rUWX5ueJ\nd7YKPMDkwRpVdq9uvmaoI0eIBa9Yw/D+XMV4HBHzz3VHxA4KZi5REyvot23F\nkiDcRG2myu4bPWErdxgYawegFK84Av6pjoPCej15ORxHHJozb1aOX0WEFvKf\nh6S2wXc8C7YXcEFLgP5RlnTrtRf6LVNPSrNURl9Z/S6MA2RSS7Kru+WotaQ4\ngTC5CU4XUfbPcgwDQAZ+9Px9hLbkAvZ6QnzIm4jeQZ1Cs9W4CJlgooPR0YGR\nDzvBbjTteR6CAQAGrytvBf5eopxS6ki60kNxRYDeQ/3go9ftko8OOqixg/Au\nt6CDl/48f/RRuDlnp9kGBCr1kpHk6FpSKbVedxJGM9PUQeV5s2N6WQaeGQC6\n1M9QrrjJng8xfF2LfZ8HNpRBDoU1oDWvfAPV3t/+qsOtx89j0gvd8z/RYAdh\nVmhaM3l0TnPrWP/ScCDoel2buRNR8LAkQI8H6+9ZlIY21HDbk3+IQFsACwLj\naYENctHMQIVX1CpOtz2K7GxMIrSFLiLR0/py+6wtiNqkhM+yYTuR4pqHNQ7u\n/nf4ozUPHWjLUU171a7xRKVdJAujwqZprWM4s2q6Jvf1EG9OsVkMj/etxTM2\n/96v\r\n=0zrl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfPbKfgWYbyaGxEqNM1XajuI7Ss6DOSEYax4rPv+sXSwIhAJfkaTAe6AHhAK11VtVavlOSAvQ9rNqeAB1QJii7Wy6D"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.22_1583524206260_0.5798703057426866"},"_hasShrinkwrap":false},"1.0.23":{"name":"react-query","version":"1.0.23","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.23","dist":{"shasum":"30ccdd91640767a3c42d5c2a4ce8acdfa3986ef4","integrity":"sha512-xk3+ozmnClBnRRIkSjXxvX7Nb6Wvh3AOKTSDVObEStpNFoGCtvx5QTB9hKpdIlcYSsNLSoJewV3jfYK/6oMY3g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.23.tgz","fileCount":11,"unpackedSize":285209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZpmmCRA9TVsSAnZWagAA9HAP/RXYZHWJ1bl/8DhKWQ6s\nbpsiPLFfkiBSTQuRb6uViKEpv99Ps0rpLqPXDIcZ8tjzMAzOqHZwSY6K2QKF\n4Crz7Ta7olP3MMxuzQXSHo9z9zm5UqJwdzPiAAd4lcRQWGaJkhWXo7NmGLty\nBqNvp9JPy+vfKxisSKfVg1aGI6CFXq36KZfhBVZ82ODU29Bh/sq8Kbi3Jm/O\nWjCh6F9gmnKVmXNYgT5y3OWDXb2wCfR2KtDqKTWueEAWOyycx0CIojAWiAW/\nkPjj1r0Yh2uYHNQpoE8Zl5jf5gJGwdDIH0jMsBuq8NanZWF9mmA4WclylMir\nkKkcCjcdHTLeQCViLP6fsotwOOMnKXcVXllzFtgwcOBW4WxKpSIkJu8TGyH/\n/igCvjJWiSY2yUDlBvAa/qwvl1ynFdhUqFaMAYMagFbXUDO4m7bd9knwznqJ\nOyVKOvb9tpt89g9WxaIqMUh2bwBn5Rpeb+1H10VT5vSPbI7Vxes7w2lQ3Hab\nB8NEEUa6E1LG2rBN+SolZSdKid1zK+wHVCZ+BSBmVzJgGxSjbUTs41JtH1Tw\nr0DBCsnRBydqMUnlpP1Ltpx+W5glbWzjKgw3o1K/IXyX6kkYNNlQ/QEYpCKy\nsoGYmTnVe0TNKE+ncOAIhrawrXUpzGGc5kt935G5KRBe9LnXfO6zpLm9ssKY\nYI4m\r\n=onay\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSt75XZp/GOF+My9ffb2RdKdJWgMMTlQuIe2FzOIl45QIgIFFO8WIWfNUJuD1Hq3xEpx5FhYXfSCZlRm4j9kylyAY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.23_1583782309193_0.7762727146008406"},"_hasShrinkwrap":false},"1.0.24":{"name":"react-query","version":"1.0.24","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.24","dist":{"shasum":"e4f0b2d01b5695647736914d615fd51944ac80ec","integrity":"sha512-EP1xa0MaVHp0DigklXpHCGV7FHhv35tP5jSE1D2Ei723DZmGlLdF1Gp0hjabQhKgftUu8i8i8qqhqFOtmS9QDA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.24.tgz","fileCount":13,"unpackedSize":348283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaBeTCRA9TVsSAnZWagAAqu0P/Rzv3yYICeFm2XW1YzpG\nocNJ1oyY3MZMKcU+epKoPSRYlkliFu8kq6eHNl7pnFz5AMRzGxzVnAfHtlLP\nbbfkBd65nU+P3G/dd1amco8m4UbAD6VeqEWjMWBLG3p7Xj6NPVcImru8KzKU\nPqzo94pQnRnkdTl6/gSDAAB/JNBE79FGBn0LjgqlM2U7PMCERaFZK3/tNOjc\nykuh0waJMPOfEKly8slyabs0zMp0/7uBKunTBcl/0YUWysCEwzcWouvKbf9z\naBH7159GWi7qfN+2gQr4sKiiobPZK2sHumoVM9Eo+moNVtxGNNSA/WDoKNFM\nzi9a6SwLhKQgczCJy0dsmURb0KMenU6AG5olsSWOEFzw+oL3WVSxpY/lYYk1\nEH3/aWwNIVc4tgSjRkcmD/bB+TCq99+hbIqpq6UhLn2KoWwaiONSQQElHnh5\nmmBiUn0YZf7u5zVzu/Ua6/nFC26VDl/xZ2psBXKZtVGpj3p9SvEChtTpdesb\npZnIAoe/L/yWzahfSrgSuDfBPwBTgDaQRc5e4Iqo2dkvl1fRN09F5rlpUqwR\nYZaUBg89g4DbF5ObEFqAzwxUzJuM7SAMYXZWaF0lGDwLiN69/F9vwpBo6m5w\nhHigG+ZBb6L+ymOATXiCzEggIauBvpSbEhyLPqSMwIVO64eb19aT1LJFLlBP\n+tUU\r\n=QXGS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID95rl4kj8e0jI+9Pz+RQ3nYjifZUP8ONlFtIqqRidnGAiEA3X1o7b+ryQeuNV0Um09TgMhCJDFHYDh4jMlsrhZqwSM="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.24_1583880083140_0.09466799071165677"},"_hasShrinkwrap":false},"1.0.25":{"name":"react-query","version":"1.0.25","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.25","dist":{"shasum":"fab0e5ace0017ee73ed1f96bdaa412bcabac0c56","integrity":"sha512-vzzBxgHfsTwh/R9vcFiD2GbE8gCDSg0DdvfJ7As97JZsMre3+2rVf6E43gOaLo0rZ+OyAgi7u/8OFmmbXgO6og==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.25.tgz","fileCount":13,"unpackedSize":348384,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaRrLCRA9TVsSAnZWagAAdeUP/1BKbxKKDQKkCGufnGJW\nB06+54oNvWMITtEcsigCaKSl826wErsR4SMR2Hxwb8kUcnYdE/FrkCO+XL1N\n9xn569BQjmIoishhXcvU4XSlGy54i5gpDKTPNpfXgjXGGd0PuT9cgGywRkOQ\nm8jWBPlBen+5ZjpeCqRdy1e5Fjr55TBMZJd/2g1VyP7sQdo/qbcI4qyQpTTt\nLaH8CvK9lXC1yY7JI3579SD87tmodxIpLzGKUG8Ub2pJ7IDteU7tX5yuBY3f\nOTP05rG4y213Yv25nYayLbjEClMh6QVCXcNjfosjt5mp1ScWziBy2l+wFBCk\n+82v6X6HuqxT0yMvYM+0IYCn7yYifJ/KeBUfk+H2OUcEg4cpTbeVCXxilmll\nu20cgAbojh1pOny0mn1mC2oqJMUy1dtqJOkdkEbPd2yUXp/d7B90n/2kLEDA\n6x7vnVqQrpmtDfw25pZjviubwPg8fNn4jWsogpDPb9p2nxglLmUjdEjuN6S3\npW4avtYE1bIfKEwPPFhNRgM2WHuwroH4Pq4+s9mK1y/a+XAw2hJ7fsQcsbHL\nRXuV16Nj3QDTa1iRNbqeASEHWfUZARllcq1+MFeLWSc3RZSmhat4Os/u0r2T\noXzvd2kjiMNXQVc8AiYsI59wXtaF02KGL0zVrnVysbUcQ4a8MmFq9hCLngel\nKYLK\r\n=rIgt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6tWCie5RPs1ucyNoRcMuSx08uST8QNNx/AVwvnYjQNAIgHNicUMojyUDAYgdy1dGSZbn6ZliLQi1oMxytfACHbeg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.25_1583946442335_0.16001897372873497"},"_hasShrinkwrap":false},"1.0.26":{"name":"react-query","version":"1.0.26","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.26","dist":{"shasum":"0b3b00b180d9922c6db894854dac1f736e9ec710","integrity":"sha512-jFasFjtnW+j87z3auZsAlZzP8+39lROtL+mez2vTC81pJjEhzsRYyZjX1We5Ni5C+QVzb5yzYA4RK+TyBS62wA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.26.tgz","fileCount":13,"unpackedSize":348330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaRtJCRA9TVsSAnZWagAA4ToP/j69dkV5f+peQ1WN2Kn6\nb0PHsbwC2hTdtVKD1PFtTzK6iAxWPlYxAjI0zrEwPtB7oJWOXY4BvLeCIRj/\nD8e7ctIYg4x2l4cKeak9hKiu1Jefz/pmWuxpq0mEsbOnoD8MRgTHz9/MiRz5\nM+2lAXnQSOQxgNCiKyWZHdX3Dy7YTMtCTyeEUJ+EaA5FThqJL777y6JoIT6h\nWuDlQuBtHWSqMRmKXLBHgwflIqTp3rVg+OQGX4NL/JdJikN5U+7ycRyKJdQS\n2xOtlVZ0L8tqHUuEaHpu4mfcTfpq0zG86cDK1+ZJ0KW5tcTjAO6ZrSodWhVq\nF42D6NtCh9f6/U1YyAzsjfgPzEDh5+0sDf8qRraB+CPcvy/bjSRLOoso1A6t\n56wf28bo7b1ddI+ATM1oeR8kibw6qqZwfbvHfvzRQuKX/Z+KxaHmb3i3DHgC\nc6F29Yk1ne8nhE8ZR11RAjZv135d9Bs0v2IEQv74u8x5rmYotysm3T8Qta8c\nJk/HBNtAawAaVea0iNTZRajSuSnspkKZ63flufb3CE9FTON2uil04U2dl6mz\nc9UzwlGTP2YQwa2OVa92syPuZU2yUK8tOf1wJQ/WXHGLM15jjQDBTZnSSjEM\nfchclZzg7soUZ/Dq+qY589jSU6Ay8zNUMrzhlZdcA8J/q0vo7/k0jX6xK+zc\nz4P8\r\n=Rtz+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjgWpXYHdgYvLUd6Ad2ZcFnMMIaIuGeNcp3MfpxTNo4QIhAOx9jldyVD6Zq1lBAKR0U5zQPNW3vha8gybxFe2hl6Vr"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.26_1583946568967_0.8438400096316923"},"_hasShrinkwrap":false},"1.0.27":{"name":"react-query","version":"1.0.27","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.27","dist":{"shasum":"f60799f4713dec2f0ad0ca50a5b43cc31ea0da2e","integrity":"sha512-Ry1CCIVeLUuuOfrCX6irn56RuGBCi7sy44tGGQ5kxuNkfsPpI7E0t3JrBMA8gXXez+Yl5f+gagsNxTN7ey6hiw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.27.tgz","fileCount":13,"unpackedSize":350009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea+S9CRA9TVsSAnZWagAAWfYP/3yktroQFcgpCsSbiqLA\natxDwF2ENIJKasAFhHkxtQQ5YoSYXoHTWB+3uMmOnqzBdU913ClyCo+1xL2s\nSlsvpWvppRj1HOfUBN0BTFIBl08AJBvEKyNVVU2N/G0bGvnzGcwPXEe84wkZ\np05r7JQUmmHALWObQKbzvn8OGYvY5jvzQrlVWNCJZxO1bOxwZS+2ZSkUKMge\nECmewfzFFuYW5/qJvyzGMnkleAecWI/vZ6GbCUNecGBAiznYXh0Yr0X11k6w\n1TnKUhYoEpw9tnBPTmi8qSzUXBzxLSS6Fk35jUs5LGCfrA4bS04ZmDHYR5gj\n2vJVKCGKtKJuwWaJLqsVZ5D7X85I8+Vx5k0fdyDXrX9HfILVWq4C3+bue4QK\nfJSTb8zHuaFbKxDx9KeWExwmv55brE2j9OKC0Z++qlVpPj07OMjQ9UiTIFOW\nU1al7xMOhnaKRKP4vu2XzaI7vKBHIUr1nIByQIdJ9thfIidq6YQpQjFHs/yP\nZojxilx36ip9wW5glNWXfkUD5tQVt2y3Y0X/5OcLglz0Mt63TR3qlBRnXyhu\ngRJFA81nR8DukG57stkoQBUKzHV/Jhfzt59lOaQ/oxGPz7CUROutP9twsoqX\nlcL81trmilwaE8b7MRwLoeOJ4pyDeUsj3XoN+Rt1tU8Tz4sNAc6mtavKnLMr\np1Ep\r\n=FLXg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn6spJkmatbkSEhnaXEeq3S/X3i+hbPKd5qL4sm11N4QIgViiQVXHytRRQUS610O2EJavhKktoI14AGKkUI3QylpE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.27_1584129213119_0.5621536079883742"},"_hasShrinkwrap":false},"1.0.28":{"name":"react-query","version":"1.0.28","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.28","dist":{"shasum":"c8d2ef8b86ac7c521d51793538739f5d80eb1493","integrity":"sha512-QMgw8wSgZyIbciH2UbpXKb+TuFR3/PC+oU1r3al9hlK3nZIn9r87LGE1n+K0ridSPXl3Zl0yJcuoP/OnaTTZmQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.28.tgz","fileCount":13,"unpackedSize":349877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecUo3CRA9TVsSAnZWagAAGGAP/0saI7bUSh00VdedJ0eg\nT2Te0Zed5CpRgiGcg6N7wcRCl4FodFtz7a1Q27Bt63tWkAy8wEhAcV5YiOPm\n4tbtPWtDqCP0R2GcmG5kwUm2EllJUM3PTIOz5YyhLZ70caMwkWmDobn1xAAM\nBvqkbrG1c4HXIhFkEdM490zo26K7G2Ofrgo5JBntRKkJCu1J0eCqFRYKQhGG\nz39t3UHlrqjku+VDRoOkHglb/gBf0CC9ieW8xd2G+yatusdD/VRFCXTyn501\n59f93c/F7zdqRISHUfBb1C+AEtLb2sgfxIMgOuPArYyHJXbClSqX+MvM8rnw\ntDvtThW+/lKujXd4FcG6Mr3YAJSjdMQknJXnJYV7Mc3O3AEc5/rkhxxrQNUC\nvUlegX7rylPNo2hvU0ByU8wB0Y7KgG9LyRBOZvLZF4ltsRC4Xsy0zhqCMKY8\nqspF09FtkgkiqrPwCFjmXyUVXJbfvhVTR7v9ceLK+0zLrQkA0nh9J+iJt537\nO9vnvmBNNE/ZHGqHkl9EeATAThE2yrL4zmGz6s8U/ct/mDbj5IkAz+O/bNJG\nKviQEn67VUe55EJQqTRjJ9YPvhmpoao95hkoQuDe5GCtmyvxLTfW2KVMHqU3\nfDSiiuBONW/B2jtcIdEWFxK5c3lLiM5jh3HlfkfbMyGlsobD42sDi8R1G7ci\noKrA\r\n=WY5Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE+7PVL35/LveX4MIGzsFUgxO39PLMPa+6mtalrjIQjwIhAI8iidby4y07zf2hV8zeD0UQnstg/uKWS3XGAKOVs4AL"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.28_1584482871222_0.48801276954258044"},"_hasShrinkwrap":false},"1.0.29":{"name":"react-query","version":"1.0.29","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.29","dist":{"shasum":"80e42223c5bde582b892ed606fdde069d6165a7b","integrity":"sha512-jfgv8xyGS7OAhwIVMx52oK4vBtCgVkCdQrWCMFDI+TgYIXUsCgXL2+dsIVNyM7IylUNneSfAncaF3HCKHe55eQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.29.tgz","fileCount":13,"unpackedSize":353908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecmnYCRA9TVsSAnZWagAALfIP/R0DuvgFEXmYQTpjfqq6\njfpacL51vNnM6LJrLZToLS/1YjBM+18xvNdunC6T5RN8dVLjr1t8C68Zp28d\n8EmOTLQH4sFrz8FGED4R/Ro6os1J4KM3CR7YRoK9bTqLrF7Im4apgBZd+s+c\nHVhxkV7uyL7eILnM+0VuBhakQgdxZO9kkPdweusTupyCSe1BieV+nCfaE4Cd\ndbNjDeQh8QLUvd7Kx4owKpQf81AyypmCNx/xQsXGftz08BePln/GzzxZqLxQ\nKzQGnQTS6NaHKk2+VpTHr7+5KpnjMsMc+o17uKoOehQ/3Zm6IsD72IMSQJgI\nwy4Yt1DAJ6hxLjlSi1su/IqU1dGyWtPX0icrEqfEx9neUXulZhzKnGHS7FX7\n6l1zxr3RhLcAfnH7/iffnpBX/QFuv1VM+QRMKk9NvXBwJxKJl8MeLmajx6p1\ns64BGPm5XCF0FgmLKo9tmwChu2MHFXXKBnY2cY/rpWhc5g6DwhFDpkgv268o\nxF35ydtX1CXJ5EyjwV1lTC00HRjywwYNUlM3dcpw24cpg5y957o2ycK6xSko\nZn5ArOdLJ6rg35Hw+WWnirV5tc7wpdW8Ja2Cd9BRV25SmkKKJKcfUmj5E99F\nQixvlLb1dCdYLoOswt5VXGBH0gXeL/5vEPWGwATQbXjTeVKjqIqQkIlE3Mm3\nP5ci\r\n=ZLGS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDULMe0EoZpGPIpvNdauP5u4S0chy3A1VNiLsDgbBtsSAIgfr91454obN/wG5DygX859FbSiog+95ssKH7Na9NUypY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.29_1584556504296_0.6476823320330418"},"_hasShrinkwrap":false},"1.0.30":{"name":"react-query","version":"1.0.30","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.30","dist":{"shasum":"903df4d6309ac681f517cdc4b424e917e559da59","integrity":"sha512-e77o1vWjVYb028mN+HDrNR2Dm8oFyxOdlosMqEcKvwIijZBZmNNydE8ybmQ0YcYTDJUCE5Gf9bYX6iVtQMz2VA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.30.tgz","fileCount":13,"unpackedSize":354142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedUdgCRA9TVsSAnZWagAAycAQAIpMmGeePeY0HHcLZjyb\nQe3v43Kd+kUya56tmMU3qjrFUtK68q4CWNoCadnTCaHPeLfO7YV1i1Ro6fez\nYJxhJT2pGjUGjNpjW2zDT5ZDil6YUDT0cMuLcKsqHLa0gpx7sLBb6Eugfh9o\np1dQg4o8CSJs40VYQgEZw8QsF+VDoVXtMYHhCjGJqtGdxXJFgAYiVGFLsPKM\ndTMAYDVc8tzxm8AOBoRtvJdji6f9W0xp6LXyeL18rqLGX7t9YKEPjkkT2VnC\n5T6fUiX8qiy5K3HIU+dy0hAxQwozKgqe/78Q4KEUVMa7RISicpKNwivpW1MI\n/iBwQHXgKyOF0ycjAfgDHY5ToUzHuV7UWEmVFrj6NQ2Z0dzw+eLKYDy6Jm1f\n7/kfCNUfn/1uqX8lUMwZVrIsBLGZxsQm56kOMDpHHUMVPyMaMsKcLP7jfkAf\na9u4sXFx7vkE1OZGAQfDDxsnwl+qOp8XO7tDpDIz7eEFBOgtbHeCHwUpTfUx\nHNt/0QYSDjPbHx3yW5b7Az8wMCDOe2x87IzVa9Lxag7I3/t3UR9vyFZ7/zdZ\ngJ/AU18g41nF+7JISKp8KzONDe67HQPEtHdJoIHUAkuMtkGh2nk1BC03eaZD\nhnyBAYU6b4fQPBT0lb0zhnM3vH2qgfQrdBbI4/t1nKTmt3TdKbHWVAGorHdR\nO6rg\r\n=0BTg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9+disHpdKMwWLMvKjU+AetpJYZ6ZZhYZaYDcX8LPWkAIgJBbb+k20juSzy5BmUqquVsxjiteGPIQTFNY2LrlCgAU="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.30_1584744288146_0.16401910076267812"},"_hasShrinkwrap":false},"1.0.31":{"name":"react-query","version":"1.0.31","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.31","dist":{"shasum":"9d21eb67a30ffca5fc6bd03931f1de0bbe4fd3cb","integrity":"sha512-AynPMl44AIXDl/gpcxg6oM8oc84k4cyPlKL9qdVhAPnnARE5s3eexKThcMKwt5sR7Zqpnfrq6Tv7QWvNBCQJsw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.31.tgz","fileCount":13,"unpackedSize":354265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedUp5CRA9TVsSAnZWagAAPRcP/iltrmIqdH24eUffUJDd\n9aCCq2Z2ew7iWT3v4MKeKziez+DG3URaVvB3kX526jg1Dmb1YCikrInaMeTS\n2txbMGDls1hQdzqwKnOJhZl8LmY9yoRyJhyXup46CoASEHS3crKciJAag2Xs\nNVi7JUujI2libTY3cTrqXFe1K/3iXfI4ulGZQLGjRqldUHyzgwATNg/5GX4N\np1L9xx2N4Y9J5GyOBBMC6+d6E6BGpGcpITfJDBVaWNxm9q2WCo8eK4TqCLob\nrkvtRL4a5wQ/OdDLRqtt+Jdxo06+TSXaUlYseuw9JROek6lDM+y8E0UbiI3t\nYHEbOLqgTCZOH0Xgwu3OuiNHwHbN87G35p/CacyLmud977E3RaK/uw5mzH5P\nBdwAwZUhKobv2esKj6HKoB3wspDPtbSVhsU9QRBi922FU2REJb3gDDeffN3g\neRbdy++BkypviUKncvSSub4OQSje1lBV5cbH+ziRNUPyGTP3fIkIhRyEnPtA\npa8E+oVCapW2dWpIxaXstaMYvU51CmJ7hSVLatXwkdmYOVUBco2Y8P+3ngcJ\nOAUAJeQpZ+e78eZaANjTuovEqmbZInA1qBfAig6XVd1F6xzaTcriCkFbk19u\n39uL0UBVkfMzrPNvNupP3fd5qI5I6ZlhvXNRF1vqPjJFmYDeePDAg84W9Hhm\ninXD\r\n=HLHW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+xcslHfuO5j0Ci/VZc+oo31GSJujGWiTcFySm24+eUwIgaNK2+OOVvPcmSrJEtnG+9j/zQan59IYVi5ZPUSljqc0="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.31_1584745081084_0.49557786500869594"},"_hasShrinkwrap":false},"1.0.32":{"name":"react-query","version":"1.0.32","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.32","dist":{"shasum":"6e3da2f105b3451b0cfb0ee4434f6730f8bf0b64","integrity":"sha512-t5BUPLzWBh58uLkv09pRDgj9SKCBH5hOp/HENFeBokr5Th7RdQogrHFz5SCGBxomt/Lpjdfx2UJ5GCgHdxpjCA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.32.tgz","fileCount":13,"unpackedSize":354350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedVj2CRA9TVsSAnZWagAAZGcP/iVOTPZarHK+g0hb0XBZ\nWU731tnQoG1GaY6+v5eyRBioTgznUFTLfmaYEpcI9JvKiqRWMYR3yHZTsxch\nQthZ5ANBRcV0ot++n3Vkzurzw4X4E6vF96eXWBE0m900Gjs99TGzzjULagkt\niLdkPaLnAaUa0/MF2FnermFuc4uPL3rbo1r3KSJLWyUa6YyK67zD2lQVV+t2\nCsPXpspj0NZNj7xwJcFPA1t775aR4+PbjlCTPTeRB5dfjMe7CMdQMCuh4e6Y\nwJw0oC0w9aytqc/fC/PQs+/12/NX+cbF4vmikL4VZiCj0i/nQfmiliRyC5hh\n0FvDTBXy+B4tJncw3hSsJsIU/a5HnTpvgP0Oh2kWlhzuDqe3DS8pttcLdSOu\nmg6FOPSkZEnP1mKrRTpRwlSvn+EQO6nZXgPORH7qZfxbLvmkUf94RHqGQBYw\nF7n9UYoY/hlbtGHLC0DZteqZfu/ilUT7BdloLdfRIOnispq0o0Du2V98+oGr\nIiOg8RX8oujXvBIRsmIHdWeL80QebkRS5KOG/XhQXnykeQYCPsW4ZgvIIAHX\nIIWw3mdPXnINC/OpArSnczMgziaZHIRIHY35Yep0TNO1a61on3VG7OQ403Tu\n1ypcj8NffbB8cwRb4dVY3sQdpCzCNjmDKVe0oqDSoiV/FMXJW+d7JkcL0lYG\nnEqO\r\n=BBsJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJ50uyg4xLvqBF72T3YALKSJpLDXfOrswTPXEeyWSniQIhAMcoAOB20DSbtNjREUP2VcImNQhPzxn1eKa2IrJrRT7F"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.32_1584748789561_0.5735200684451782"},"_hasShrinkwrap":false},"1.0.33":{"name":"react-query","version":"1.0.33","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.33","dist":{"shasum":"b9b973b33a4173833b6cf097bceba9ba9e286530","integrity":"sha512-C4uT9zNMLYnPSQ0EWmR5idaNX6IGmvnvmx/i2tqPIdI6g8a8LzG7W/Fo/pING2VzeT38okTXJkRwhla6hb/ezQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.33.tgz","fileCount":13,"unpackedSize":354852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedV0RCRA9TVsSAnZWagAARWIP/1CVrBexwD7CJaoRpXOb\nN4pVZC2h2tKwSHBY71/SGrKaTt1un8jRLcZ3bzOowU8sQxjoZ3bveUrsGmQe\nPu6rI0fcLOHsBxm1dA3ivxnkJB5xdeefj1MjXXqtcJ0C9YYDssWa/IBK/ETa\nXwmOJxc0bR8lMYOr38A2GQ3am0NBqYIJNCZCTyK9iVDjmDb+A9UZ0vCXx7kr\ncUXhUolTNB+4mjnh4al6o7yTOhkw4JSNFIA0zLehUklq8c6xIivQmtPZqgDE\niS7Cva0AUrnpjujTDYKMXsRZOHNFwo0En6GVcCC3MVNVsN7AWBZua7BsjJ18\n60ATuvWAonP53+Io9twtHi1F0+XpKJ6UHKMuuc4ZF0Y6pP/Lv4+XYqyolqtG\nfJ3k9U6yKm7iI/8HeOhoAV4UfAhkP02g/EiNGnwG2Nh/Yw1FkHl8cinmW5k9\nYl4ydmvk5BijrFZt/IHPRo3/ob3AtIb6KWA1UAsMzHLfiCqdtlURErUNGsVu\nUVAGis1S7334m9toCefcDX9HaBUUsw33QJ9v0MCr/1o6Yg50hyG9KQ2XMSQv\n7/UqTnhfJ49ko+XK/3pIZGV61M1y0+UiqI17TrSSuO1E1E2XyMb4IMK32n9v\nbo3usVnmDaSQOAf7clBatwynA81AYOVlxhyGXkJcPrxlkFHZfAu+gcs+dYc3\nTSyV\r\n=olh5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCg6D1w8B01PzJ29RHJWQN8T++6K0fSwYMLdez2GOuxAIhAN61uLVj4zzXa2URQ7GYsLtzCPjU/ApPyueWnwcRVmJJ"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.33_1584749841079_0.39940940763647004"},"_hasShrinkwrap":false},"1.0.34":{"name":"react-query","version":"1.0.34","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.34","dist":{"shasum":"dd14c7968b90e84ada3f6d90021d6414c78627f3","integrity":"sha512-5mVPMWabM32JEv9EOOa9Yle+ojZr3AVpuNEjTUJhVNOMrxy54GDbAaS7R1hlWtZphonZSx1O4wHwndGg1ICy8Q==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.34.tgz","fileCount":13,"unpackedSize":355945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeQo5CRA9TVsSAnZWagAAFXIP/jaJN8LjT1bMxK2K5NzN\n3TPF4uKdd29KSOUP615gDvTBoASBanPYiFd0QDy5M04eZGDqq/GAkW5Xg8xb\nLhHr+6hukKwvJcXsbRAY3oauiY3Yk9uFX/9OYCkZOTkdOz6O5EI6e7ERdb38\nle2EaIlQR3lJWULy9NkNhRqEgT4ingGoCdKdGjQanMCbeyO1f7chY9L6eWTf\nkp9KAPwThHI39o8gL/+DVRTSc3XlREFOSWN28q82qliusvmErCtwOz7rYe9G\nl0WhxQKWIEaGHrGQpRyjsgrKuuHKViEoEnq1ruW1bYGSNL5cJyhwFwtmHzwk\nVJMQ5EmktucUQ686iqsLwCAiiUdqlsuJO8dB+BLCRd8MywutInNKVqGRh2/h\n9hEizbjnOlz/Bb74xCAY8a2DFu6v1LDC6msXy0u3yw6E9G3Ztq2KtREoWR/t\nzOoDNVo8zh6VT/vFJw0Dt9AVaFS8IaLY880ILBEdT14uSaHiNGMwNt4PjXgl\nrMSCGtk4fD59rzLqtLpQEtUPp8DZ25z0IT7aGPg7T9k/smcymuD/V8YY3nAa\nVWmblguYPpkIsDAZGem+c+kt5I7V3BDT2Ji46PeSBI6Liqk4Z+BCAsLmJXYy\nPMKWlgYJLNLkgIplpEl6HA0niqL18t/aXgzCwT8QiSRon0A6bXry7cVbl1YB\ns7EI\r\n=bTud\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGQqlEymqBsJMan8i2CLeKU2sM2OkZ734ZgJawX/BI+wIgWBeVnehJjAwY9F5h/rS7WXEuDzYyZhnSuuAorALwVyE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.34_1584990777043_0.7182427720474798"},"_hasShrinkwrap":false},"1.0.35":{"name":"react-query","version":"1.0.35","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.35","dist":{"shasum":"a8f19fe00277f3b489f4c976600e362f79b0206f","integrity":"sha512-RRZV3UKJPokFSDaJnTuhorlSxHSmkFYZX5WPS0EP7eubLgg/ceoZvn3vzayDNhnjy82Weg3JDlimJY6YKJIe0A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.35.tgz","fileCount":13,"unpackedSize":359220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeTrPCRA9TVsSAnZWagAAXasP/0A6vaZ/Y7YP2G1Rm+H2\nWDi4fZ2LrW4CDOqkbydiUbND9LnkbUAC23Fj/VQI5zItQ6ipFDPvT1fyCgze\nHiD2PpAfU9+6AzlzCzapaX7WE/587i3htmpU0jiGHar+FBTYD5BLY0s9c+HI\n20LEtKGwtYrNvrE/k6I6pBnN5Q7yhk6CE09Kav4WDwzFfyhWH9vnTTlrlamV\nTk4/f0TIlCN4jDFUrhpyrzTmrh7twsLJuSKuij6dpoJrhUaDYpnEeW9BlECX\nOKpLOyCMa7ismLPjAMhOIDo59h0TR+BWZdXT6yRwPBIQ/onxb55afm9qCsBd\nSmixKo+IQPGXEhq1H2A39J7kvivFnwi1Va8oaa5Lk4PFnUC0sYwLDooy3WGR\nOBk+bKFYAs152N0UakBW4cvtV4Jzu97Y+nuixeDCSErOTrH1+B5aKIc5vTmH\nWNmbbRy5420cx0Sb7pAddFAnLPjOfYRXpKc3oLQkPh8LDiHf96ZZkCzatotT\numUa4FDK9MrZBWaCsx1i4xS/si7tgRhq5tm3/2Jth/Z0AnnKr7pMFfMDXZyO\nLjnWG90Wop1sGT8Fpl6SPij+Enlsz1YYVpCsWoU3rEwHR6y8QpZCNJgekywb\nv0ev5rzkTUC1I37ac+exoq1HVUkCnCno+Z/fB7hTmJw2nnhXjgFzjc11sKBC\nBpyv\r\n=J8dJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFpnw8pMoabRXA1TuwsWGbfTN2S5Xqij+Os3eT7EbRzJAiEAvq1aUVlMMnVzLLYKDnrcQ5nbLrcYfH8MzyNOwTIFw6Y="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.35_1585003214755_0.6106743510198362"},"_hasShrinkwrap":false},"1.0.36":{"name":"react-query","version":"1.0.36","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.0.36","dist":{"shasum":"926288cb798b6a11fb532e09898fc85fb4129983","integrity":"sha512-aecZKRmam75D+/UiBEGfnvkViC9DadxIGro2UNFrNs1fTqu63fCYw2av0QM4fEHTX0mdeAlhpkYHMqkP9YFrLQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.0.36.tgz","fileCount":13,"unpackedSize":357578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeek4HCRA9TVsSAnZWagAAjIIP+wU9KGKxMyOkas2opReG\nHJVty//pzHeHgtAyjHHE7E0k/1aLZL4dG/wyUUR42GCPNKv4Rg4yJREFN/N7\n56+f17T+OlLBm9pwotY+of4bNKwHUkdXjppQtvp6t5PY3PE9nPjuvJ3FqJzH\nhRat4T5SCeL8EZLNb19j6BW7y0ToNOOQjiR/V7UzJz8cTI5YiPURr/TeVuB3\nUjTiOJIVR/RKr6xejx57iHLX1Zb7xqmS5FQ322XtTPUjPPZCI6j4pGArYQzJ\nhsbLMa38/VSEZtuYuqN0SCCNzAswhtJBO+HRl+cIH8AISH5RQMyhT+S/jTNS\nl3fC35HQwc56FTdpodanqT6FDdDCw44AGLV26jodVHn7AnCmPe0dQfWi5W27\njsZtFDcERFIkWtawhvFa29mhxMiDPhpwTBxuRZDjOwA/uW9gLy8YCMV3fWf3\nd30gfREAv3FlaPq40UkfE5/039DDYcpAwOb6RhQl7OPN963LPGPH3YWjNcHV\nbxBrlYBHdYHbRRSFVLWrlBWqwywOMlPX8ZEK561pcf4Zs+0mFMPekB7QzVU+\n8hrMGK4kDoYfbModRIMFcwtQLtIMakEufcszFqxnRAZbl1uZXElYqZDiLtF0\neOJFQH7QOT5gYbM4eIf2cbObZN6deG2ktwTZzWRL8geQixGayxCs8+z1AARg\na4cy\r\n=PFVe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbZGsxm5L3ppyKew0szOelhg48soLJ+zKbbrRJbhsGvAIhAL/VQ4FlT3oo8sOR+Tg02X98DrA1TXfCh3nnpMPYjTc8"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.0.36_1585073670537_0.9769895918556626"},"_hasShrinkwrap":false},"1.1.0":{"name":"react-query","version":"1.1.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.0","dist":{"shasum":"936703877096be0ba71d069e08ec754604e8d8f6","integrity":"sha512-Zykk6fod57KGLcJZ0TqObizvDBF+H/J/WB2wnEDD6+43WoqKcnxTISmdfikdYxZmEMJnm9ah0DaSIgDyNzLEoQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.0.tgz","fileCount":13,"unpackedSize":361719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeems4CRA9TVsSAnZWagAAa7YP/RhkTsRgx2M8tSU0S5S7\nuYuWUSAbPPdE0X+X9x5sFgEEywxSv7F96nUC1LSUoDIOm/7ShyTR+VYp3Mbn\ngh7V9CUzWNZecCn4NlOUv77n6+V+ffKvQqunY5cnOgAVRPhOMz7GjlDTtdWi\n9aylp7k/9ud9dt4HYjBvEDelDzCIFVPGGrHAuKMww8WnCl0A9AWKMPi/R58N\n3yrPBFID6yRMNXVt+5oEGy27HX1JOyd6HO5Y7DR0LXZiYemeDvQ3is9kEKCp\nx7jJBMEfxmB0FXii8rOnQN3gJKbYr3kgPIhy2jut2pSgBIDT85ReY2wLc7R3\nA5NZXEhhGt55XaeteTLPOUt3jg0D+EmU9K+/t2Cg+mzaGHFQfVMCMYrhUxQH\nRlt1zkdbPnPEiqrTihFe/A4ioWLy2bOas0AIPJmoVAjjxxwhvTFXsl2YY8Uj\nwHBGWSR9Ndwi+uHHvBvdwfFfemAnjcVgkJScwwshYWKDz+gWkMu0+YnzYc1U\nqneIehcsIx6A/V2AptCBHJ+sDsmr/ZD6fUGnMKVHkFxvTAysCmYqbc9OBibF\nLLeDXfTX33Bmgq0EwLE+8u5cMrO+uQDDNyUZKHVTF9AbDix+P2bnAL0p8rpL\noA5CrxmkXzYvjfJfz8T1LMtnzToMymHZZquH/4sl0o8rFJK2zEHWi5leoq8n\nF/BV\r\n=XJ6s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEedIw+89ZF+YzMfl4zJmf33OrQm9bfUGEtBCW2c8ZtsAiAXK5ujUYIWym9K9Evy3lyg3ziOYk6+9u1dEEnWD6v97A=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.0_1585081143888_0.37600598709718236"},"_hasShrinkwrap":false},"1.1.1":{"name":"react-query","version":"1.1.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.1","dist":{"shasum":"37b044a8236c863ab7758bc6f6ec89caf58df067","integrity":"sha512-8qhCGTR5rMDSeJYa2se62AvbDLJr50QBGN7REM3h6PdHKEz8dB6vWYIzYTC40IkOlvGCzsPeMdkcsfSA/Wsy4Q==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.1.tgz","fileCount":13,"unpackedSize":364047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeoxRCRA9TVsSAnZWagAAnqoP/AjD2DfKFQjoU/nqg5NH\nbSeUNiIzUMwaB3KilJHRkUr1ejH5uvmEGro3Vh0hHQJRXClOeexMtWMddBCt\nRE4VXlmCnwb0cq2Vu9EM5TiPb6HcN1OtfzrTnrmJT1sPn9k0wqSUMtP74/Ti\nkvQ9Kzwvmjvl2djPI3+u/lLCTlaKAaoWA4G8PkV+OjBLJCO9/Bb9XK/cK7AF\nV0vU6YGO2UgBaXKEpeg8DlzEDLhWFBEomrEC9knrQGAWEsV11V092poP+TzA\nlZxX987kIi1dhcvzc5yGwcjX2YCCBAyOa4iABod2RaDJCGGryCR0bmP1Je7e\nxMlitwQKz2wwGfTWKBNzGovq6o2bsy0IoAILs6UH+1H74dsXblUowSFiW/Zz\nDpiktcG6IzSLFyWH3HTdS7Z3NylOdJkohFU0ItMNelBTj7SvB2lftgpBtebc\n+xAK7CsDsLMqloBY8gljHDK7anj5ju+bE3cu+kElvIZZ97bzE8j7wMAH2Tv6\n8q9CvZEaTTqFxiE0RYe+sT7HkdvS/a7LNGrNHFh8beadhS1Kl2xc7aH5ek9g\nb+DFu/ma44XIMa0YqcWQcZUxsTFRFOwtPMKg4MVLeF+v63UK6K4U2AKZ0OJe\nFWv9Ck6oBq9y3gJn7L99kDtN5m58/AagqlggNP5BBsFYEPzsWQ0mT6mQZUS1\n4iHO\r\n=uVhH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEMfyHEAn35+YrkblSBjnHjoE/FsbLeIgDsV5UzfT8IZAiEA5/9BHnulI9h291PGXp0DVtSaT6S7Untbi7tSX4abGRA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.1_1585089616567_0.9661183413301451"},"_hasShrinkwrap":false},"1.1.2":{"name":"react-query","version":"1.1.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.2","dist":{"shasum":"cbda994c5582faa299a85d74129271bc71648a3b","integrity":"sha512-AMJrLITZPeQHNH1VvATUwhKKqtD8UW8kFEeA7hW0ELZd+ErgxTikRGyvMQdTZAEDyP2lcfni/SqgRDRxuoyV1A==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.2.tgz","fileCount":13,"unpackedSize":364113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee8bNCRA9TVsSAnZWagAAdwMP+gMRtEVHU1lNZMBg4r1Y\nQT5AhWAEGWBky93VC3w28nJGK8MdedpGW7WHMPAe7rBIPGKe9zOCAcjUEfEG\nCp2LOcciYAAHLkkE+GFHK0e6PGFuNt9MHXUbsrrcXaSM8poE/u9cB5flRHdp\nVPdCmUPKKOY13hp2k2T6OOFXEJemjBQqa4vGOe0Q5MMFNPHwV87NDv21I6Kk\nYtOXqlaEDb3LQAL45t9Pylww89sb2rrRM/a2Ufj+kle6QjvZlVAMio4qTacj\nHB5rQk8XxuqexmyorljiHNWDoCXP3xEizcvxEy8ZrM7KekUNWeTcBDTakmHu\nL0GyhSiosE1uu8eaAFdCxxtJSUogo0uuwz2HzXcnrtbNcQ8I6+q1vqUCKKV+\nxH9t+N6hip665QSng6z0G5Erxcej+HsY1MZV456TMbNI7F3xS+cqu7Iam7k8\n0zVgGmKcHJ1NbtFd6lKmbnnrfc73f5mLVCCEAFSO0j6xFQl40u3zT6T3xPok\n9R5ybvS5aesLEXyVDKlFsDCPMp6kVJNMPJ2CzwEetBU/6LL7oW+gW1wR7aAO\ng/POKwJI0TMDr8qM9Cvh/nfcwvkAoFOlICJQs2Dnlg8HuXV2e+m8Ih5XHmmU\nfy/JBEmdFh4ynLeVUDWjzUKE283ig884LBhJ3ljardgmgvxtKRTtSzm1DH0v\n+xqM\r\n=BZxy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvFHpqtZh67GtqArk+tARA2wMwqkM5TiRxJ432bGRE2AiAstGP8F6BK3dgkkpzSFf17TxqCwkxyrFJxcGHDUar99Q=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.2_1585170124719_0.8655234333543433"},"_hasShrinkwrap":false},"1.1.3":{"name":"react-query","version":"1.1.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.3","dist":{"shasum":"4e75a39157637796a0b7243e9f0263b77f1812c7","integrity":"sha512-G/1K4jefp8/ls1iLab4vOdHlqZlFG6rmh2J0suegn+IK/uwTEhlrnDMNU23niHbWokncou9fuN26YeyAYBZGvw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.3.tgz","fileCount":13,"unpackedSize":364601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee8djCRA9TVsSAnZWagAAUSIP/0NINKs/og02D/2lC0oB\nZPLNwubsxbIAJT5t7rxdA8EmN7Fm2UbUeUj7tuULzw/nx0nwdH6AGyFUDwEx\nJ78CUQbpxJhUG7hZwpJVghm0x4/rocWHH0rMaJlyrnvnzko1xiV4QXi8vhmw\nziAlnf+9apEfeLlDFOYgmG2QL53CuxR1Qyn5pSIs+TrLFCLMXORIvU6E5LbN\nLFa0Re5MNcEHIMwZc10/IB4lW+9vtpfZPHnSryurX1znyfK/OXMXj/Avo/Pu\ncin5Ictxc9mP//KuzSPaujc8qjcQK+0dAh/DDUvYzGS/8djzWh/bH3RRVk7I\nAKbUlsqmryngnJRzezFqBEYu1juVmwQz6ROXZxH7vzKT+ikbrUsT/y4LGkFI\n1IQVxrAS7C9P9ourh+qVMnYjskxBsn9wpI7TunGpo/0sPcGigfdJvRJ6InlP\n0pmzFy31EBINqUV3LbvjmBxvjdZmYju9tvquv7fsmE08lHGfwvpF7BPxxZ+P\n1+s1Q4x/F3dViZbyrvPycLluVaZMnlSlcW/Fi5YD12Ggn+FwxTrBZkDYVQ28\nG2LbIqliGPYObvBQXoqQqHmeKiieNvmsfkCECAS2ncVKVIkwwofePsMYzqct\ntluKMtlLsAfF3P/fHmnUpq7pSZtLPh2xbRT8sc8snZnyMcl60cbFTzEessc3\nWDdp\r\n=o1tg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHMJzjPYuE+/gfCJWziMlbFj5WfnFtSL5a9MrhEjupxAIgGt0SB+xmMZNhaLD6U73yZxIL+j4Xu3KutOrccja3T4U="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.3_1585170275024_0.029467017477007307"},"_hasShrinkwrap":false},"1.1.4":{"name":"react-query","version":"1.1.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.4","dist":{"shasum":"d637d71c6b5d28c8daf52ece531aeb615dc83aab","integrity":"sha512-435cD9XBSU4eYGG4j/v9CW25rDfpyjh0sTXkBOxeCmVY23bLMGDFdPjiyd2z4fbqDV8NudPuLOK4wQUwmVpKIA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.4.tgz","fileCount":13,"unpackedSize":365434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefEI7CRA9TVsSAnZWagAAwDYP/RjK4v2tFk8gSKV72NTQ\ngWGtE+QF0RKLfpVFBruCvB44Sbq9CMeh0B9zudBpnbuKlqxa1lMbdYdIqG9O\nahKJvxFiuT4AAoHSi1XdIUqwGW9BDYOz6oj3SzTTFll7tDF108ZfNEfgTF91\nKpFZ4PwVZd8N+R9BWxOksuqMcA02xrEE2JazVtaJOcqYXhh3deO3/o4LLgdQ\nbvgO1Mm2p+REIWkmyRwqlmWW9BSE3dilyF//9uUANvkHxCB9YUXLgEZewF9Y\nUh1+rW/+n5dOeR1UwPempmAmbxIxstQvFpyJP6dSWhooh+Xi3CufKDoduSOB\n4Jv2upgsQxZ0AGSwTsTin72NClwRvXKZYj9foNUKzKTtNv66Hc8NurxrTfYR\nkai4qND7DA9N0JWEj9M3mLBhOkFEQ2Oa9lGvQZvr0yXSAmNuh5EL8zze25PV\ntK4LN5ARkENKGoIXrCTHPU4u19e68dCRwZ6F7w2JAdU7K4NECbMPb8Qi9r9U\nzgsFjNBydGxwThRecVbKtn9OMEAKoKTPLhvyziRe2BewbjipHMqViw6qIEMY\nAm0EzQBoQvZ0xaVzPCLcPUJVp/vtGJP0eJsR4cXkKsDZmfi9/PU7q1JtHurz\n3Y8RibSN+1Ow+EVoDNm+Zb3mom3y1SO/X54mptQjajITvonE0molGEPspJkR\nJ0O7\r\n=oRSv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1BVhxXnTZ4JH2/VHS7qX38hqsaT7sSYWgpOeyV2mJPwIgUadqdQL0tvCs55vTfKlJNetWECn9JmyfbOOjlcCwI8A="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.4_1585201722230_0.7587101890835903"},"_hasShrinkwrap":false},"1.1.5":{"name":"react-query","version":"1.1.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.5","dist":{"shasum":"91f6d35d1b08ea004e47e338cde09deb06dc85d0","integrity":"sha512-2bBsDD47vzo5e2uyw8g+vpVrHjNj9cQiFKUr9DgnMb/xVBsttYZbqqn/lgrfsCQw/bENdEgbOCqFRcDsqTGipg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.5.tgz","fileCount":13,"unpackedSize":372272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefS8YCRA9TVsSAnZWagAAfokP/2Z/Y2Be8H3x5Wu7vIH4\ndOr9yD0Kai+GSuZOkfaW7A5FHaOwQIVBFW/kF/BgQPeCBftcZNMjWq4nxpV2\nc/hnJ9QFn5mnSvTy5bSwHNQg+1WJ9yrxgI6okgNdJNVeO5MnQ9n2dqGFRp2O\nKdKo6ngTCcK4UB96wEnVbbK6mwWlX9qMCz+Y/Y1EbjQByQeBLDQ5j2Ar+49a\nr2WjVELL1yKvsFbOI/6DSGRWIjPGZ3a5psvExtsw0VBfSd0UwZ5AWcrtihnY\n3Bjkm1pF42ugOpJQjbeqxs5DGFlil+sUpxMuiF/bAcAJHaQoOULeMg87XK2z\nMBLaBPiPFRmVLL98ahdyq9avkYvdnWTMDkOqCbyod9g5hJQ+f1tYUBGlEjpE\nWonLaWiyN7Wcw/xDeAQsX8NdzwGYqIk7FkL97Cu3kV3beGNLI4T/cvYeGkgR\nwjRwCt0SGqBmXulm23iKyMgOfypwR/s84h0ILBg4k2VuCQ4YZlxE+VHdw/l+\nxnyjVufN4dWxD3WxfMLiYKcW+l8KzD0e/0pMiMYQEzBnQE545GBWr9TKUjct\nTYXW+gYZh7Te2qRckqv3bbjxCaBVZoOK+EVQ10MuXm10iTVtyrBOHnHZAvRV\nG+V4RMKA1e6AfJw9KRnbUxmeY/FmmBm1tdizQ8R1OlNU/1XZQCPMC4EQR21U\nR7si\r\n=xTfm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6tKEK8suaNJgKQolyyQLRpTRMgypeea9sqoUS2H02mAiAnY+WKkUNZIx5gKBP1zShSCENXzxzd0MQIYqDdTLmnNg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.5_1585262359330_0.5585312484437581"},"_hasShrinkwrap":false},"1.1.6":{"name":"react-query","version":"1.1.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.min.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.6","dist":{"shasum":"76d12d2010837eaed5f1a577bf275b996fa06373","integrity":"sha512-1Y1GP3Fesvz+gAMvQqaqfMhcgK5V602gGw5KvhXd9V76JPK0xYjSY3pniqs5ktyD0lgYZxogHEZetMAuEZ7PAQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.6.tgz","fileCount":13,"unpackedSize":371420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefW3gCRA9TVsSAnZWagAAj/EQAKURBYYtgoPvCEVV/9l2\nMV0mjTFMGm/lKG4dYMPhKQibmlTsBFBBxYz6vENyAamZ9gPciDE/ipAkIgsP\ntl02Ealyhpsle0mh54Otxbl2ZEcJ6evM6tbMH8lZj/b2NO+VbSJmCK0PbSpQ\nd1owafu1yHWNpAcvof8OFmx5l+CDg/vMmotzsCfPogkYp8jPiT3T6NF4zbmJ\nKBjPQgAtuL0Mouq51LrEV/5WndmdmTJrSiAYOPTAKwF6sRNjRrH6ndXsbDlC\neDSa94OsqyhHoHc7M4pMk3bXkY9vWTPY7LTxw6McK6vWpuefSi72CcnI8wAO\nNY9QWvdhvg+vPHJFRgcvU1S7GrRTtivkipVI9xtMg/22pCw7MPDqDzh14yAv\n1JYgixHB6vkXxd69yas1Q/wyJ4kVS3BCZDUL/p9WzcBwHf9UP/tpjY8YKwj2\n1iyvaJSWe8T6GRsYNfCN29WcRNkOh15PcqWh7J49q77eXEzLGBMQ2lz2aQoC\nOSksETORZy+/s8PTkiluvtb3BUP5XNCWVwSB92weupyWzJVDeAOuEwPbn6Hy\nhAzb0h6HdUQXEoAMAMEpZlofDcMJv2yw/xaEYawUuWDOTp7xi7NmTuGmz74Z\ntBusW9cWaHfpcEsHwYQyK/1NATonySZf0Z0axhc/1cuzTWs3zPx+ZFqvAwzU\n84fy\r\n=V717\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbzxhU29iRSBEv/WQsMJdThhILQufsP2Zjou0JIPGsLQIhAO4TsrHK5e3Br6CwWXiYuDASscSg6tB++0ROpALcRsJ7"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.6_1585278431673_0.6736880259664406"},"_hasShrinkwrap":false},"1.1.7":{"name":"react-query","version":"1.1.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.1.7","dist":{"shasum":"173824f9b9c979effce85faa8eeb0710ced9427e","integrity":"sha512-Lrh5DGC8OpV7sXfIK5H2PFyBbzLOc5u+x5DO497Pi0BoGBotUQiCJBOnVxefUEFDFvHFQ69Tiqd5W3qTEIGRDQ==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.1.7.tgz","fileCount":15,"unpackedSize":482864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefW8nCRA9TVsSAnZWagAAnG4P/1q55u9SKbcKRgckhX5F\nrbm0m/Vhtz2Fif23SgojNJBUM4jCF/phmKt04lJ82KMgPJ2v0IqHEymygY3l\nVuSUZl1YtO5Ubzdprh5et58aG6TCc1JvNnllgsy4i7Vmy3Tia9OzRjLcwAk5\ngzRPe6RN0WzzsnHdCNQy3dnIre2B5OzHh04hPy0rUr0xxE4wDM5lvqYeR82o\nFiz4V1Wu+XBY48znmrVWuMrs7HKoE4SaDTbIprwy7SktMzNPN7lIPzNtUiZO\nHlc/6b1B0/lJuNny9AefgBxZ87inUHKSQnECwn5DsEWf1WINp1wumNWOWp+b\nLUyJnAqchaGgOYxMGjGpNtE/AU92bkT1y3Q8I1XKSX8BzZ3cjq8rEQNr1nDU\n7ofU0hDbx84PuWya+dB35Pz4lVH5YN0ZCqnErNY+6YDvQ07Gg3nuq8v/thfG\nbTc5mcjA4M9KaAwTx7UFWALj14GTKlG/Hkyi9d4tUTpukLrngCLR7ZIPOK6p\nPB2CpkCKRPbvZR92uHpXp32vQbIm4cw9TDqTx/x3ShbK/6hY0NUXohVAaT8H\nZN9d/wzztmYL7tXbB3d45SfdNYdKVI2flobACBAXwzTYIvVi1IkbxCglWhvN\nxhG7STgR/ChDITTs0hvWXYs6aTsy4jxuqihD6d8llZ8cinUVFChGWziy4FIU\nS7Qh\r\n=5d/r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFzAdZicPwXYuf9VmMqkMlE1IB+DXtLncQwZNdNynu3AAiEA4Ji9H94BOm7wRzCoTUfhqm0M/jK/2Uv9p6wDaj08NWw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.1.7_1585278758967_0.547039780869319"},"_hasShrinkwrap":false},"1.2.0":{"name":"react-query","version":"1.2.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.0","dist":{"shasum":"a4216dcd1e71f4bf73a07beb3c7f029c2b8cb27a","integrity":"sha512-BtMfJqRTFY1D4T6FvTp8JD+xNjA7tsCpxUhz9JihfJ7zsbRywD7hf1ypSuCO38Ifdo1pe4ID4Bw9HWl/wvc2Ng==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.0.tgz","fileCount":15,"unpackedSize":484445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegiQiCRA9TVsSAnZWagAAuocP/2Ll0zuR/tfL6y4Cs3AW\nyFQgcARuL+hKgHY7aViz7wGFMpD7apmHrtLmNSIKR9sqz5jk6MIcac+o1NCc\nnTkp5KmGg/lnBvVN6oFI9Rl9xwvzG+w5Kaf+lt3RovUf3rK4MGR1dCzZV3yW\n3bhSz2+8pmBDtqNHZVVY2cq+OMfR6GYUlE5p3mx/pbDdMGHlES8GI17ZmSFG\n5McDDp+nmacCaFWuC7NIxXu7yWq2A72i8o/6YaVE7I9pufZWzNROIM6T3E2V\nw3cnNO1kS/rh9jBalWUbyKy2kV1VMfTlNUMV9K0WWSDPvngUWxLYxq7MYqfq\nL/gWwTQ13xtsJa8wjP3fisuZYFbxce8QV9ofdC/7LDqRyLUKM3N6SansmGD3\n2ALpTD9QorGgB2q7Nk/HwgkAz7T1BeaFZK0Nrp/VpWuywji4F4XnmXdt+eGV\nCUUV59EX8su7HO5CvYmLQR26KQ7QRh8Yeo5fc4JMm+8cXw0XB6RUvO5kwXxA\n9Ma825mErowWvDsiKOOYpXCjngP5oBhSQxfjvvhJNdoZNhpsm8I4EiPJ8lho\nmCSoumbyosKrQbEeb7UkX/T8wUcWVs6AB5Ge9ekMhQslya2s2oKrfUneAQFZ\n6OdCMgUBUI5TF0MWiDo6ugCCrIkQs6OUHw9Eoj7S+aRt1KwnWadj/ZGEGhTH\nHckl\r\n=dj5y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChPcvI8TTk5I/UBUpES3h1iz35OrwBBW1UnmDy/EkdeAIga9JZ3SaimuueXNeC6fjQueGF1KnqpJGMGxetsyH/KzE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.0_1585587234002_0.8689065269617091"},"_hasShrinkwrap":false},"1.2.1":{"name":"react-query","version":"1.2.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.1","dist":{"shasum":"dfc9cc4afe3253b8df9f76d466fad5f50d06a535","integrity":"sha512-2x1D1U1FOfLqlgTxpPCWyVkVE85eqskOabSasjRODDoyKS0TXCF6kQyq3P1/0TkFEUwTQIjV9hDz2MDaAJVqMw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.1.tgz","fileCount":15,"unpackedSize":488758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh5tQCRA9TVsSAnZWagAAo5UP/Ri7zn4HrSSYOtLOiGlX\n/z8gi3oUkuBuJ/A1btdM9aVa26bxJR+IawHtdFbDsOYdRbeHKYiDGTuLE3rD\ngU6DgzZVMzinWkz2D7OHlnA6ZltCTpjKSs0Cy05E6kySognDPju9nFAgDjLx\nV0zwTqMI8fviEdTiYPo+77NISHpd4JLGdyqz8Z4kYZ+TbZUVwwFCIfR6svi/\n9PHZh3yVdt7GquLPGCNwzwTYf+7mVFwnCy05s+72GiFuOuoZX+ZRS/UGYzdc\npxAOcdhWPHo8Hp5ZHImtbnn2ibNkHIZ2m9rKJtiztZkAdkLbLAilFCMqjGgz\nRVpdYirSJEGl1/aKt4/PEl99P2+dTbp5pT7YqD3sglzCXbWDpoh/oOhxXevN\nzG9LoV04ne/67xrR8vDyS3r2+EpiCBx++FxkTInRkwQsqDHCqUdXoYIJtTza\n9HFFNmKLF4zcRSq5J78VDCMiMzjvmGVFmHeCJOkoZclrbO8R47AsT1AMPw7j\n1y+hFLsppNoGqF2KAHG7UmlklUkj+WPCYydmXuac4Zft7fby5XljxP/rTxcL\n3edAuOKvbtb1hN9W2eaN6zW0+obuA1bqXK9UTzSbMxsy/tvM2U6lox+Vma45\nMLZVY/nzAeJNejDZA9W5UGKAA1qtboAvdUyspsLB6rCE5cJzWWkzUhH/ie/M\njFKf\r\n=dxb9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAJxVzbtw4exh1iqQqE5wryP+3Q8NU9EOJiigPFSVPthAiEA6n9XaUBUNEEAmI23nMUNlAf9bk/eF60sjMzSWH9SbLY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.1_1585945423969_0.40007972236868317"},"_hasShrinkwrap":false},"1.2.2":{"name":"react-query","version":"1.2.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.2","dist":{"shasum":"881e8c68b64d4aeb6b71ee982c4e1cc9cbd2596f","integrity":"sha512-gsy32432jQRqW3AwoyVTgctG06nmNn47FI/YlZAU5RcUxSLMEzl8EJ5a6emKQzIBMPwk0M2eEzzrau8pjFArzA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.2.tgz","fileCount":15,"unpackedSize":497020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJek/ayCRA9TVsSAnZWagAAeR0P/R1NgzRVqH5sIK1Nq1Zz\nWcfpLQApRf095n2KWN2z78D/jNNN2A4U0UUTzqqDwakdhsVlY9FzTKmcMj5H\nI7dSRiOdpApsIH8sYkl1YrRPSRgPscMz5SEmnsY/yKnvENdxWrZ/8mKIey6q\nBCTSi60l3e226riC6XH5jWAqz8QcJQN0hxhyhiFNXGRsnxb9qCrn1Q6YbJrd\ntZoGqU0dY29if9aPd6FI/ABLslwaIjA6fZt5NC0Bt+M6dIY9+cpu8XkbBnUt\nVF3MciGgxYUwDn+FT1l64ftVUSyVhNnV1P8cA3RnvpD75LLBprwb22qtrVaT\n1Yxz0h8DBTGjTIKHKJjlL0/jy79DTvdEV4+IdNarMl/Ba1Iq31Kr3k0mjMaf\n2+aa6CILmrM2mmIKZPUq4uH/BrRxn6MvuP+qGpwD1ztDgWmaELEZyzdlNMx9\nEZ2aj4XogsG1EgdXlMr9Go16n93kGwXozENupWjanxa40V7pj3YsPTZvbMZj\nd6NdZ6+zSpc08Cb6jIA4jiayp/rT+aFbHmxB+Emdnp4FWdCs/Q8WDQFy6Gah\n14udY3MRAfLIHqYTKFregfDyGjEvfCr1d4oWMg4Zf85Ovv1R6VfQ5us8hxn+\nIo/ruPQYTLuIEasvQnIMud+nKXfz3Wu9CMJejZTxyJJTY4mY3XZ7VGHMam0G\nRsO0\r\n=8Sre\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuNc4EsKSmXhUgFumWQZt0LEZpMwaL5ZGXy9iRRFGqNAiAxqelRQNT/OfoqIZhv/Or9YmCgDu2Or1+baRf5QlkPOg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.2_1586755249620_0.06871089300123145"},"_hasShrinkwrap":false},"1.2.3":{"name":"react-query","version":"1.2.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.3","dist":{"shasum":"db904d119b750cac07b59823bd5a69dcbda58a5f","integrity":"sha512-94puy1PhGKp5g+2kRsCGcps3xNGKOycE8Z6vYTmFUD1ir2aUpEU5nD2p4aT5ATYPsa5jH6eOgxhZym+S90mRMA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.3.tgz","fileCount":15,"unpackedSize":497183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelARLCRA9TVsSAnZWagAA3N4P/1fOpGqhKTfGkF70asw/\n9UBtKfp1WUKHfmSnvmbsnEqRgs5fI3S4k+/fMhwZ2MtKTNSjvb4c1Y7BVSU7\n193n7E8nUTEtzgh62V59mWEfn/xv9/BPmFqtGBRAhOe7eNG4nuR7DmATOmTf\nzvT9VJN7lKzxYRmRt5JuoFGw/qvBFlegBu9MnI0tcZsURUwR7AOygeYw0tDg\nBfvtGagqiRV9DMwglDWUsd8gmQJ2TD2gp2VIwq3CQrGJO4xOj6EUd8dgqaGf\nw1l47vy1wsnLk0LkMpLI11EEFd4cpdOSs5SBj+yy5FEAsNb52/MT5Yqe06N6\neSNdhA98Y0/GtPHzt9W2+Sk2rEDfE80rrHhyj5gK0Dv7e3KJ/xgRSn9PfyKJ\nIGMOF/fihquXm0GMht9xAQbdnpuXsWJ8Y75CXL1qZxD7Rkfo4jBGvXDUJKYp\nbdGKxhzUHrPiZgRa14SwnU28JqGEuWLNkQ+jNN1F5jYaSU4iOwSy6Q0ccx+S\nnRyIK1lMfWwyRkyt3FkLUXTAu0ExlMHJu5IDKHirst1rImlAuXQ+RlwqXuIY\nzUpTNK7g+mKcTeccmWNtdPqVgseg/jjNeF0FkSrbY9pn5fF1+3lUmtHAfdI5\nSV3nEnTLxUjYkeTvM8zAorgUofIKdHCDOy1y1OQEFwaCvR4XvWg0pI4wFRh5\nUUTq\r\n=0qGA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBtw5dRLf5J9Ke22o1BZ3yB3RFaMlguE3jxRxUVX4NT9AiBBgNEJZAdrbqJMou9v1mpoaQ7bYbS5hZem1m+aj01nuQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.3_1586758730911_0.828876702978016"},"_hasShrinkwrap":false},"1.2.4":{"name":"react-query","version":"1.2.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.4","dist":{"shasum":"3de46c12250423f16e131a7b3841da03d7351bd7","integrity":"sha512-NCy35GiXbiLUarjj6xtA8vxJo9W29bFB7t40GpwPRH/aIqFu3tJz/KpD+IvVUUuMKWOpeVMEgprSpgLAd/Ft3Q==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.4.tgz","fileCount":15,"unpackedSize":500644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelm3DCRA9TVsSAnZWagAARwwP/irT+u4vv+X7E/j87OYX\n24b0NK1OeTp8hL8VBZ9/X6YPI+X/84JtxedZRPU8UXRIvlEsiUz5QWZ6/4ix\nIxkygCcFhGA4QfAB0Z41QYH1xGjQPddGJ+arOFUl1fsIzbjkU6qVrUSfEzRn\nVJ93V61yj2Ney6lKf2uGfZ3gQ1W/PGyx3Xt5sCJnlLpXMetLDX0vZiJDZRFe\nUXJbzpcJq1t1zIV1JGHhmr0rlcts2XFv7HvcOfl/u4cPamDU+H6a/MPvvtn0\ng1KIpPwrfz9NKk+acLe2v8RIQCis+NvEMeq0HcA5dUYl6Fpsk+w454PMxQRd\nnPPa6Azlv+XHjTwXrKlM5cORcLmTkJALJ2dPLeQJ7jUhnDij3us9MeIKjnjO\n9SLo9oz8FLvjaMHm4N60xwycXHn4kU6wsq0C4RVgWA85dD1fHbm003uZwyTy\nYrfjkAyYk/rzowGQG7YjZmOe3xYWCKIuEqzwD1A7zGDoOYPgw/AoTRZmcsvn\nbUp7bLoBhOIt4iW2/tzLm0zzW1ggVAmF+kN8WaEDXa8IEgzJHIMM3vo4FAb5\nhpe+mbLmBJ3Y9RJN0UHMaf0XNWdADbMlE1o0GTc9EK55GnHr2UyKLMr/v6L3\n/9P+p6zYw/GnmIKN6309W8dhscANTeqE6hskISBVYTjundb8hxPZWSxC52v5\n8INF\r\n=Aseh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6LNHrH8x3edKtIkEAikIP/mueD85oWyXQ0oCrXuUZSAIgJzMTcfS2UzdZ14Gkye/pEHTvu/9Z93SSd6dc9g7U/og="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.4_1586916802967_0.9105155467138453"},"_hasShrinkwrap":false},"1.2.5":{"name":"react-query","version":"1.2.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md","postinstall":"node ./scripts/postinstall.js || exit 0"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.5","dist":{"shasum":"6bb4cca93d842f823559eedc1abbc8129965df87","integrity":"sha512-QNm5BciCx/vN+3pbHVRuzTrKjuFzlhf1l6FMSejQVMiwbJLiQB+TsKWWA0U6gP1+kcINxXassUsL1ibvtMsCGA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.5.tgz","fileCount":15,"unpackedSize":500769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelysrCRA9TVsSAnZWagAAbBgP/Rh9TfoPfDyG5sPkliPc\n4NMxzJbPfoQyBk/0IwOTwTBvgjyP/+9Vxf5FhjiM7PnzLrjV9u6wjkvZpGZt\n/BRpygfBkq2MbitM452GqACWbI4rXmbGHT7TFmkMM1Z9EYP+TaT6r+MeOnuu\n0NOvfsl0f1pqdVdDYMIZWgaBRw6vUQPKGjKZJj89VFljM8GH3xZwDaEiLJtY\n2NuYGlEMFF2Z4ews9C1kp5zUR+Yy8zB9j/vLfxr29LfH2a690j/nCQ0ikkQV\ne+/xe1V+AgVMBtMeiOrOlmMDdq9nQw+0n8W1B0D7qRp77aWtPA6+tmIXqw0Z\nsci8O8Y5i8+3DIx9n0+G72VqodfE9X93Wb1J8tLmbADdqx70cAasinhhCF5g\nhXKAlVYDEonHp8A9BFtskaxXJ/dgOYnlVrMvf3pGpj4luiwbD6Nh1ocjd0LS\nHFCgDPAvi63rTqMz2KbVEWK4bydlcDKwtl8LpDZaKHHFqRjnKNK0wu70FKEz\nO7jDlN23qbkN8CFybyrFpneNQeddraad5ydt8Cot3npSfuUAWY+CM7ruZBCj\noxOizoDVXZ3G/bGG4bOV6Qxcva9an3RN2o4r0+js+YKBdSm7hNcZCOYbvobL\nKTiVAFkIIzXvRyRaxgj3+gHDG7wetXDSih5SkMP4ynq3nKoVHZK5aOaowWrR\njJIw\r\n=PJru\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfhicsvQHlsjlr7rWSsu0TctzvLtdT9kUEi6fBW6I1VAiB/dfdNZKyt1x+k+TaqKV/nmZ4aEYEu3QafiysqGNaMCw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.5_1586965290427_0.30990853488434156"},"_hasShrinkwrap":false},"1.2.6":{"name":"react-query","version":"1.2.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md","postinstall":"node ./scripts/postinstall.js || exit 0"},"dependencies":{"@scarf/scarf":"^0.1.3"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.6","dist":{"shasum":"a142b2377d50630e223ec617da7dcc1c1319f7e6","integrity":"sha512-I0WaIvJgD18J0jUDbhbzKvm/qzXsN5VJF/hzGXV4wbb1wLOxcO33dmYrLZy8hKI68mWSHCxLQXSrdUtM9MDJJw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.6.tgz","fileCount":15,"unpackedSize":501483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemHdfCRA9TVsSAnZWagAALhwP/0aUxOtl7qajKbVwWiUw\nqi218/AZpqkAYvm7Q2neNa7YJzJxVfo4+qoyg/57zYIQPF3VD22cZ8T7AZz1\nzqxjfrMLIQHzKASyMWeNK6+uaZnZKFdYLKb0NYbH8JWTVrWE6BPUB4NEpZOs\ndbsGP8r6E/zUlO7fhYCO46q5ayFxACGa8g95HnVu9sehkhSYC4dtD5zSxRZU\nGwH6cGhgjkU4LRnTtDXSKeaskCwZDRjZjwmSecAch8p46q8KD0b0Tk1xZZxs\nZe6cvl0WTwaDhnvQSGMeWcpMm/Gdi//fh+1mPILO6+sakA5tP5zVQs88GG4G\nLxzGBvAS1nFaIMxVoIy+4RWF7vj7wUSOZDipTDMegW3ZsxHz6aeq3n5r1JTz\n2x6ab3TXZGgP9i6azMQF7VwikM1waAc098QYnPdnb7ErzwCsECP+LygeTsA4\nmdElfYb3EUR0oyjsoBdaTCZMzyH+ovib4m7awMz9K9Y2fIVcxujlbXCgTFQ+\nJg2ofgZdw8CNbm/P1rzWT3qTfP+HinDXEKskcxn6uxc64LbWG77X1i618+T1\nUAHHyTJt21H6Nc8+wfsJmprr3ZK6By3eh8rOz4TkjB0lR4WKbgWM9DnsgVim\nbySxeRQ4+mS2Vr0+W8fkBT1GBAIXrxBnbIxV7LUA6PkufOHETg0UHBCJ6Ifh\nDd/q\r\n=fgWX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLHZ65z+qqtCLOGiUQSdlCqDKbbTEftpUy280TzveVhgIhANq6NgAWpUdkw2uu47kshGS3WacsPVWTmAhzGWnzQEYI"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.6_1587050334838_0.02570087356854711"},"_hasShrinkwrap":false},"1.2.7":{"name":"react-query","version":"1.2.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","doctoc":"npx doctoc --maxlevel 2 README.md","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^0.1.3","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.7","dist":{"shasum":"9c18fd1d6db6f961421b00b14d8ce9b49753fb53","integrity":"sha512-oaVpIxAr3fepE1HRx9rEbQKHMwTT4MkVf+0lgkjWBY4MnIKY0/ozM/ImW1T5iJvgFh0AFI+KCPljR9FER5hy8g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.7.tgz","fileCount":20,"unpackedSize":534217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemTz1CRA9TVsSAnZWagAAAPgP/jPbjWnyLPpLbB4A4Llh\nrNhJ5PuMOlb9hYHdqsH3CAIL161x5YNRN6kflkcNP2lUu6zxHKmlhubAXnDj\nmbU6zsYQOVm/G1fSTfBJV5BQ3G4djvB8tjjwnAsyvvrC2YBeQcXInlvnQBCO\nLL9AQXhFZWybTkriiaw1Ym42COL4Y4b8XVxgdkh3qfIlz1qIVHd5NIRdHAWt\nRRrjrYlD0dAhUMBdmi0ZPpqfhPhdXmZLmPiUqsdSD4bSr2U/6I8pIUcVIWuv\nLd9FCzxZOuyR5GVHMyl/0xhpK4zDVH09kJRe0ujwattM7TVwNergrb65PS9q\nOMy4eX3HrHgvYZy6l8iCiDif4s6KktUVVm8bVhqxCaPZSCW8ER+BE4iftcbZ\nYCLZKLZ6gzihg1bTJYPsj2sn+PGAyqjlV1blcizjhuQwFvrv8s9WWwon8aOq\nRTnD2cbB/0+Ck7xqyNwIx2/6S6Uw2huR8wQjgTzQcOAiXMhkweReWtF29n8C\naT1Dxifo886D4Xoa4h+57iXFRSX2WUlGPVbW50JR74dREhwAy/CjbScAwXkL\n8XYCranG/a1pmaliPYPTLpOZN1h0ikR625RzAEe5aiDVZgN9+vvb8+2f59/6\nvVpInyux1Cp6GA8pCHdvt22zo9PeBWPUL5jiYs9L3L79I9nLrxx8IJ+Az8/p\n8JuY\r\n=AROP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKSQ7QK+P9DpaJNEmz0KxDWj2X9Dx8SDbiRwzG0Z6J5QIgbXQw6BXCAO4Qx4Eyfkfm5+cb6GbREXVtN004sGPTfTw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.7_1587100916799_0.289882469838044"},"_hasShrinkwrap":false},"1.2.8":{"name":"react-query","version":"1.2.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.8","dist":{"shasum":"e72e052f2b127f163b67a7194c7c59c50332d6df","integrity":"sha512-+y5AjuphFXvGM4ZAyvq+LazFc2KaeGZPJmnWijs3b6/vBTx1Ce8Cu8w5sHfiOxzku92c8Rtvzds3jGiQpOnkJA==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.8.tgz","fileCount":22,"unpackedSize":533215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJencY3CRA9TVsSAnZWagAAzTcP/0TNtPnRjH6OzDnM2PCy\nJakAjd84CNJIFj6d4An3l0XiWRLbauEshiTxAK3d4I6Wv2hOvF3sh1NqSZTW\n6JWPJEMgQELC7Oi06om67UsYOKSpxL0u3fvo7qhnk8LIoRMxld+e+FenaKAn\njzFYb5usPyOYgi/f9J3KC2S8JfLQtHdPa3bdax2EkyLe4JszeIGx//FAuMI6\nz2MX4WjBRp8mUszjJLFSvq7Vz6Ypn0aCQGoDi1UQMsOvjSasegVt8aq1KJSP\nFNr4exwlhhEx4hJTF9IqQHONfop5Zk6Y1j8mRs0VEDGxvmJofO9ayLG91WgH\nX5Ok1MQrCmsZdzSMgXZtVwJKR6tY+ysTaV4XG/ERDBxcLshj0THQQdQagT7E\ne7a0Nt9FgxgBVyM/5d+4DJ/LueMx9ZS79hIc7QNnRO7BX1Pwj0Z9aDp5fN3Z\ni0Uh6q9xQ3779c34G+NA3zAvECkzpGrlaJQp+4nDsN85ReEjSA9Io44O2Bwr\nZh5HrdouwFkB/FemLfzDul/7VQvCRUD1JgQO7BQsH9rke8wfp2KBdY08q/re\nyRdy8xhHc9yge83mV39JLIT1wnX5yvvdRSLR6mePcPI8Dzh1XXlrmoHW6DLT\nszRJUqSKvsu2Fw9uEVJUE1RPLHNZLUD6vZcVrnPBTtZ3T4IBPZuxH2gE+gQ3\nTKLi\r\n=GbSi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHev3EdJ/+DbJ6gYP5+SJWgnjSN5/2+GveVUT6v1hQBnAiAqda2PNVFHSjnEKrXJkBAxfeAXy0GNUFIY+zG/QQazkQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.8_1587398198756_0.6155741288882577"},"_hasShrinkwrap":false},"1.2.9":{"name":"react-query","version":"1.2.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.2.9","dist":{"shasum":"a1804224e6e3c51b018f73355b6904662e10e3c7","integrity":"sha512-f4o9USEuWNIfQblWjWHXUvTTTRvvoEVKv++ZDLTSKGFzicxeEXSmQtEzIeT9l7z4VptJ6nQB8ypga6aTrKqYYw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.2.9.tgz","fileCount":22,"unpackedSize":533452,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJend+NCRA9TVsSAnZWagAA9UcP/1MiSWtMXl23rOV3g6uA\nlOiAaf8ylsRMVjs53MvPVvAmgaoyCqIF+iiUqk4MvDYU8pk6HLR3Ckp2WF90\nbOQOiGdwLemLsP77cwL3EV/ITnMX06CxXAheOvy5GwcF+ODrIWP4KmIdxCMx\nIKhf6kE+PHfgXINVK5e2qHYaQy4ev6qt/EG0MIdmE096YwtJFwSsfA5lgyNb\nZNbQdLXFtJVsh3Ca2lg3BnuDpVbwjdSh45Ee3sT1HhOeHDl29aahxFSd44ji\nqQYk37UaxxeD9Nfiz2QbRpGmqvV3bk6O2fk+oIEJpE9xZRYAESyLCfEC5WZV\nODpLMueOJCVpee/pUSac9/WXPcEbbM37q+LEoSjcZ0e7fJQbcb6ACulymmGm\nu/51ynOOCQrNZzcFALV7Gq7nUTY5cavz99sjXczoBAdSlhYFBq3AWN8dqfxh\nf8FD4zCd0VgJI3SB72aLSdzScHRw50nN/2ida29Y+7RAOQyG/NL7TvG6sn6y\nmjNl+Nokj2M4GpV/SPLxEO09VZKOepCgA72jFxDZ5CGyKWBjVkX0j3ULmkj9\nH4bKzTLj3slMhqY5Ig0vN2IRvlur8YD66kCISAiWQDS7LkmT/mgZG6zqM3B9\nt2tn2YuG3c0qETGeLBIRyVzi6KAua2l7qcnaBa2JPuO/vpKhpIZENUHqZhhq\nNrgZ\r\n=ae2o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEC7aCNN9sEsLyFlm5SWPr+mgkowSs7UXTTN1mcj4OaQIgb0Uq8ABy7VvqNLZTfMe/X7qNcxwbUR02BFIUleRf0HM="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.2.9_1587404684829_0.18338161551846688"},"_hasShrinkwrap":false},"1.3.0":{"name":"react-query","version":"1.3.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.3.0","dist":{"shasum":"4ee11ed0abe3e21b79210d8e83e06083fd0c0f25","integrity":"sha512-itSMBvP7s2D713ujt6tVIZjsk3mmKp9lvOFrfcyTdmlytCdlnNyWl/vNOHJAbMrkr+vT0lwj7vaTUGkGVaJ8Pg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.0.tgz","fileCount":22,"unpackedSize":639202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerGFNCRA9TVsSAnZWagAAxYwP/AhleEezvRbDTf6/3cc1\nsbDg5RQTYIxfF4VfF0W5LH+XRXLzmhtLUxDoMo5faJlF5y4EWr07B0wobNWA\nvnb67SpJaWam+R+86j8ZChmSHcDTu/lDq++2fFmg78e7Y9+8q/kKXVVhz5YG\nOXSLAGafEGlqtMZBa5jIUm8Fo1Y7scN4CrLrNYjvPvs0KOzpjo7f4uoAv7N/\nPBCBkAZf8pUCE3Vtd2mnI5ilaMEKie14w6PBKMRJN7wxRB11WehFSDm6n4vw\nOR36lPYwxrgi82mE2USs8A8yQwRqNX8/KeTUTMsC7eDJgzlVlkh1CiN0u3Sy\nykByHWdor4Tg6FCcUXP0Lel9z6Tti2R3L/z+ZBq8kTgLS0m3rzUxpL53yv6n\n8ZJlU5885hd0WxZFwhxfz0cM/5rHb4pj6hdcVGrx5rRxzp+Z4d9tsci9TxW3\n+qwCf/CFWSMjEPArT2dYY4Y/OE29Fa4mLiZhAV8EKFWQO2iaEg+Mooj6/qwQ\nkLkNv3l7mIRliD856QjPvbzDaDOlFAB6+pYRTl6AR7/pOyB/+60s7bayCt1s\nAKcFhjtY0Rm6PZbeKvmfvUGdcEwb3L40eyLi4AEsSu/4oE7yi1o4B6Yq4koS\nRInk7RMdiH1f38925rFJbF98Zm2LfYJcF8FpAVkBw5RJsTBM7Q4yy668Wfvk\n5bsf\r\n=L+Ri\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAl8Zrmav7xkDAcIZUH5+NLHG9y8rsN3iWwQatiwmD+aAiEAoGWaRVuOW36R6c8xOn+YrPyW6ksNB3AR8oxZKb0Ywsk="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.0_1588355404937_0.19377284719779597"},"_hasShrinkwrap":false},"1.3.1":{"name":"react-query","version":"1.3.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@1.3.1","dist":{"shasum":"6a0463dfd9cc6e8a211b18f5d2c122ba861bec11","integrity":"sha512-FZYjx8mwgqFoE0he96ynhIluqXoZECcTsNXiEum0h75FTQz85TyObLGedE4uySOK/hE99XSAWD4+AteqFvd05Q==","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.1.tgz","fileCount":22,"unpackedSize":641688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesan2CRA9TVsSAnZWagAAqlIQAIVufg/Bm2N1RsW69G2j\nOeNZE4aZ9x9WGZjuJMn364nJ1p0aao3yhTwB5yf4PhMj4pbV+LUucaGta+Jj\nt76o7MYwp2dT73SMf1GtF+tXFMz3pr62kJ2afjCFa9Zcxe7JXMyKRGFXARH0\n83DzazfP/lfmu9LZUBvLLoJXjXgzzDSniIqfqzA4iSac46xGkkioNcPcy8aN\nsf2RCuVmDqsVWb950blX4j6u7+0OS/FOYbPkjXNgPVf72J8Rcypqcz6anEQO\nlTR1CuakefbG/u0bgHFYrYufTICGeDJOc6ho1cODv9tXlBtAE0g21vbU9xPc\nSuZ+jyjFwN5QxrVuoJvdJpeB5cnyZY4oix6FaDE8U2i7nGcGiXCVEzCY1HvS\nT7w7Hd+A3RXhAPhw/V8A7HBfVi2WOoE6yw4fKLLGyxS/cwTfZgfvM/Plvuru\nuwx1ySvyCzTB/ixBcZe+zEEKmKGKQdM0nKfliofOk8XEbzt4bYR2o76XWI/t\ne1luTRdreRkI1oNWRL74cpq1W4rcqEq8aWDKsV+s3L3ZZEMJpvxytmIS0pwf\nUuVrJqs7K2HU0htzh3hu2zsmPItFppnrrFE+f2o7+A1dHmHG2mIyU/ZMek0S\nZYYoAzDrTekSPnHQarwKmnR1mLP31uaNy/duXPfcJQ4dNJ18MkUXmHGWNnqv\n/pCZ\r\n=m6r2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGba7lLlBrAY3eNqaz8d2ocCuvi4xYAo3fmszK2BpggeAiEA17d5z66oE4tNLlxE/O0Ons1AdY0k3VLP1ajxkxbTcgg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.1_1588701686207_0.89859617636067"},"_hasShrinkwrap":false},"1.3.2":{"name":"react-query","version":"1.3.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","module":"dist/react-query.mjs","types":"types","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"223f6555674ffe3a47ecc6ecfe8e372fa74f790a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.3.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-LKPuSU7QQS7U+9O23bnEXr1zmHQBaOA4mbD9CoMOipmTkwuemg6wM7OZRMW53XkUKgat824kebSaZNXwBrjRSQ==","shasum":"7312c58e87f10da1d05d529c7eb041b6ba7d8422","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.2.tgz","fileCount":18,"unpackedSize":641871,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesaxxCRA9TVsSAnZWagAABp4P/1lUQqyWRQijmtaoofP0\nwjpuZZcYlCQzwO/4Jt5gw0GoWU97aczknQB/ZAH77FiC9OWKOkdhFwyWShJ6\nXYrUwZ8RdElL210xhCNCA5KXG5RTEGWkWMzghFc9/PJQ+MVlaL7Q291OuaoA\nK2f0ovT8lWuQDmCFGdoJh4vkLd7QdV5hSAvG7X7E6r9F9ol2pyIq9C80VQCT\n6/4jCZLukZ91Fox/WrKhkFzwcp7DLiK62oIlTisBDmuoCHHPa35S4HTGoHLb\nxrqSx3rLVAbuxOxp5XGXInydHAIi2TMJqm5I448In2U/YoOZQUUsZa/GmDuI\n6ez8R37FNT7lBSMg86Z/h4aZddMowpck4+e19pRtpEwyIxj19XCaLz47jbGf\nWY8t59Hg0paTar0PqAQBLuRgOWzaXhN85UkMTCt3RbtbkgMZlYnjNw/ObAgN\nXI/bn/kIMdaAabH2laBBAsgdslX0EhYqrnnwP7uXCjhchS0JwZRs8ImiGLNJ\n4qahqFMj1dgh9UMhql+4e5TZpBP/OtLUDPiXEXAVE13jafEA5oCCvKPiKtIY\n3sQcgCt5nmYvyq3chevWkfTflLpymzgPGJVFEBAycfKHoyEs1Eo9y3kbX7Hw\nbIIkTZrVP8eih5FAY62JjjEk82mL6sH1X1eu28udf55C9q4mvi1x5p+WpF3V\nSID6\r\n=vM/q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIQB7OIpdnWtUrmZNkEOS2TReFHxq5oNxTOEg1mLyWBgIge2WnWVOGXAGdV89a3Jgf0XKCssDH3XptrLVUWVzvw1o="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.2_1588702321221_0.6015847889953738"},"_hasShrinkwrap":false},"1.3.3":{"name":"react-query","version":"1.3.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"e72d84f1df04248a71195e00ee56bcfac1e510c7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.3.3","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-hamNWxLHycMv0hYIlUK/GSQUkXiQML4sUjeqxYJ3W4FO6TLXxqTgtj/r0W7CYQ0VYGvmU3CmbaP6gESxRdkbuw==","shasum":"41d349e4ab951251dcbaacacf1fd2d9f7bbeed1d","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.3.tgz","fileCount":18,"unpackedSize":641882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesa7LCRA9TVsSAnZWagAAjRcP/iV194Dq7P1B0+v8Fhw4\nmPHxtPjYq0xj2BgUiUA0Hi8DXa2ZpYC7UCiBigLkGPqUGQcx5RlAsjJYC7E7\nLu5VP3oMkB3rmaMDIebUpThe4AUMk9mlINwnFqF/4A4deuYQxRtOPb2A5BlY\n6YYLO0qJbXae+0SQq9NswiBCuneQ7uVqKDQrb4UQyB+JQWHrKJuBTsK48bGA\nqmtz5lMn2lLGkhyXbtWqlazScBGwa7Ie7tlXXbECLswB2fyrg3hK5Bxyl1ZY\nOy8DOTUMJN28y5HrTOKsRK+oHe+a74ulTZAxpAOdTug52i/VrauffkVd5Etr\nvZ+DmR3rcoPKWkr4EbxjNXTslIX7IN6SBiS5ORnNGB46ECF7lCpPhrZ4wckJ\nXaDu45sErKIjO2k9ZRxtU5Ra3FvcNUehNULnBor48p0/DiDI1KbTHFbZjTvO\nEhdy79mY/klKaEkY++OmgbqKbHg9cS/kbpRhW0PpKiJfXUKW9I7+f3tzPOIe\nlEXwalGLaZPXdyvlMJEdZkGBm5CfYPCU38lS1NzzTQbvUxvdewnMIZbDox62\n1GbrCNE63BLxmNyygEs5WeFteNMvWqU/uYByAfWOnhOZAjehxQWXeW7ErR2F\nDnt0I716uVFuH5P6GUKbuOdQmvI2X+O+btc2OoSPL3nwiLi34SUAdsBamYxt\nbvQp\r\n=ArEX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGqfPxSESXcOx3qNJ24G2AfKqGCz6D1Had3jAeN+7wObAiEAqLYo8MTfn7WTAlAJv3R1ECIsZ0oy6M0Di6+DuN7zk1U="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.3_1588702922391_0.5067860944773184"},"_hasShrinkwrap":false},"1.3.4":{"name":"react-query","version":"1.3.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"ff5d6a7518e99bb30c63201dfc2be009ca4f96cb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.3.4","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-J4qmiOyG6ZYDUJkWcFCKiCVUInlvXpeNrprJH8gxODMT2gRMLM5LrDNQo/VcjINKb4bvPPe3eYTW7GfAKUvWrQ==","shasum":"adb3fbd32eb3d4115ac82e0f35d85d1d6d364a4b","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.4.tgz","fileCount":18,"unpackedSize":642992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJettkjCRA9TVsSAnZWagAAG7wP/i4Zqg/Tu7cUSSRpotTO\nO8IXY/P+i1WG5yZ8/EqDgsbi6j3c5A7hidsC92lLGW5xD+PuBhjWUZRbBIUm\ne4pyY2VoCdKJ7CmvxSV+D6rbvjOg/ntA2QokephkcsLYMpUyepHt55VN4NAQ\nRg9f06eosUh8uzVAWgE9zFFEmIeG+SgvA2SjAMJnj6meLqaElnBqpvqeBpT/\n2z3Fja2PIJj3CfXHhp/RzD+4FZL1RMEUOMg99tBUwKCDhwjRSXTLlsUrVLfn\nIYUfzIa/kyk2dCCU7ryIX0SORCLdlWB4ol7zgI6iISX7yqZG6PYLGBLKHy8r\n++fd2c3PyNHf0tOZGIuuOnIyxmmI4EbEEke2tkgoM4myLb8fKjNcAybQin+4\nVUMg8l4Q0SjE8JvEwjac+DdS56xTmcCx6askw1FELf3gSUg+yxyLGOgJOrhJ\nkuRJfayWUGXjETCLIU7wJkmwRAuz+jco7Y4++FjEQayzP32drHkERSd6ljmC\nqZDR7KW69HsVN/NhPGgjtF6tKT4XY7hWyqPMrmuIDIHJTQEAIGAj4fJR6tvs\nHbh9ykCfKJmyOw0eQbtBBs4C/xq8S8WgiQVqmV83AQvEMIgSROt7Fd5P4BLu\nJz//kyMZfsKZqx7BDI9oI05XaCQqEGApJZwMAdllOFjxLL5z3F8r1AaioVKz\nRPfq\r\n=unIm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBUWE/+lmHG0g90LCCNozCu4Y34LbCuQNokAQ0XdU++1AiEAydlaP04XutYMzxpucu4e3uLQpfRh2L1PFwGC94MxG7k="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.4_1589041442313_0.16189537319056635"},"_hasShrinkwrap":false},"1.3.5":{"name":"react-query","version":"1.3.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"83ced962550f405efc81c0183ef5cb1e053f0e33","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.3.5","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-VGdnYPHbsJeYpoV3ih2PFdkJI5mzDe1MWu5WsJQR1cEclYU/YDrxGzQ6TiXsOEEYwbL+B5T1qW6lRy//UFjcdw==","shasum":"e1306d237a63af21cb66f9d9e443067e6ed3d254","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.5.tgz","fileCount":18,"unpackedSize":648831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuVwWCRA9TVsSAnZWagAANwcQAI2OCQ8b6Ws0dqFu28KM\nCIYhIWiLKURwNhjNvgyHRnMXCWodCujuLXUGv7F7yBF3tA1M4r5p12m7WZEW\n3gbSTN81PmEWuSOQiXdiFAmWn+6Sl+6UEmED9wCmcFK/A7sViPeat+pi4GRB\nCLsMbKwPJ+rTJlqlWoroG6f45Oo1UAzCb6gIdsXaHsncwi/eHVcxcFnjquZf\nJsOIEy3stcvg4jkvrhr2DWheUWgJPecZuX+yIyUhZ/WKtHa2mynL3jc4KVSg\ncMItt5/PN55D+OxUFVRyMOBkOdD0qlLDOktYIjq0BrXiFWm/rR2c1oOieIlo\n513w8fKNvgVr9zcl7oWNWCj3Fb2K9bPDPo+q5AiSYXZMtsSFEhGYppKjD8zY\npMfFQX3sxxu285gsjjt88QKF6ws7/OB7KDhiKnZBlHJst7+OEyxc/BPoStVl\nwDZPCThl2TJLManyg9RKQQY9MH87LPVTswNKgKY9GlKtE8XnO9TIu/Fpgxp3\nGZ8CCyfi4Oar5f97HIpBNgKtFZVDKw9dufXfKbmpYN+0lWe/nXgEpXEPijJ0\nW4RBoOzS61Mi8Ej7Gba22h+UfSNDWiaKY5uMbU+pQIArafhklaKxlp1wUAb7\nI24YMYsOkbomPiZF7zOmQg/K6cZltYYO0XfWMKTj/nwURAVT67X02CHPQcck\n0una\r\n=+cjD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwlZZGkGETiGH+Y2OcE7V2qbh8boLn6eA4S008d+hECAiBTj6ZfYrGdZNOMfRY174TT3ZfKi8goefGeiELWjgZWfg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.5_1589206037857_0.45857512175070925"},"_hasShrinkwrap":false},"1.3.6":{"name":"react-query","version":"1.3.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"b02f8dd01ad72f1aa79948525946809567110f7c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.3.6","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-6UVgdp9F4clzeqDuvtqNyM740N84ktNwPmYDmMHHcEHQIFh50mRCG9UR/lwd5zPu2uVqZBmND5DCYvvIoLZNIg==","shasum":"95783b926155cbe26972c59d3b0df73e92397c03","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.3.6.tgz","fileCount":18,"unpackedSize":649475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuVy9CRA9TVsSAnZWagAA3IsP/i6B/q2DU7x9bABxdwe4\n2u1rbvw6FVniS1wlnxODmRk0TQH85hKf3LI2akwg59D5IbasLIF1YwkrTKUX\nsBcIjqW3ksbcb3aR+nrYm5EuRN+0nvIOz6BWpq6LMAMn2i7/tuR7rB0IzaWt\n1xm9t2fUEh6Oh/0mIMNVI4DmRl8LWiKYyemT0Gnnl0w8xHB2OcEWjLEReB5A\n8IUNhh3Xm7rOKJO0YFV29icXPYjyAAXFkkp+xL7KAVn3NaDnyTq8TKOiOv+j\nH4VUArVO6/q8/578QCusPwcHF49vCZ14uUyPUQKdeECvvFXWFiN3Qovcy/zK\ndzLkUAJs7MOy/h0Tz5hiVXWP9rnsEqDs3bqWSbkhpwdhJtuU7haOCTs+RnJ6\nYti4RLbndcobrePJOAbwsjs5orhuruERN8w2dTc6vk18gWkqrml8TAbOpfYw\n4WU5eemT3RmbSh0zwT870My1vOo0NhULIE1NVCnvSKF2xCwU4p7mZixVjdA0\nF0V6xq2cFPTK84vb0F8PwuuPc5ltNZVmG7uyI5zR1hogx4cSOljVZ1vn3IH/\nS1jARGDcs3+foCKjtTmLNhJwNNVyJGbwqBVQ3uqDmwL1ZL1ssUP5063+SoEZ\nI36BCO5uNmUjqOTPHh9BhPhLjBQjKXuMzW+hGP7yNSK/3RjFbiAaLanPwVEU\nNEHa\r\n=fJ4D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAPGqQku4VblJgi5LfV+ur45qguXKMqYIXXUufPB9k2CAiB8pLkTzKAdOGO9LlRzKzqGwr+Lm6iGhxnaoccAcYa2Ig=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.3.6_1589206205193_0.09761063038165174"},"_hasShrinkwrap":false},"1.4.0":{"name":"react-query","version":"1.4.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"4855cf72c484f2bbd42b8f1d367f9547898709dc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.4.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-QbSkfxxYuZBiQg381CBPnt1DAQWKh3tZP7vxe0hSZwd8K0Igec70R2WMx77zINtR3Io0WzkgqkGEke7Tf1A23g==","shasum":"b3b599371626fd04b043680c4e3a55e13285cfe7","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.4.0.tgz","fileCount":18,"unpackedSize":656753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuYU6CRA9TVsSAnZWagAAB9QQAIa6HbW+nt7yaWU8jlIj\nqN6mO6RxQqGUH2/g3HGIo/7d1be19OX8lTlqtZ1KRnpnW5VJ24lm/yO1OQ4g\nLQwqpNx/UEa8A9aZEdVTR23CiVrVzmW+GRRLsYTpi4zjVmxMLnYumd/DZOh5\nKyZzK/t3m+BzO5j5YjuH8X67Qbt5OXLW293RqW3UXA5xSNesiWcoasd6bv5l\nkOOk/q8udzK8pvZSVM+yBAKt9gN0kciZ7qyefO2Lmd4OSiTUyFiiqq1NTaFO\nqZFT2urG2OrqgC8XYvVnPoDDqEuIU2FMBtVbajSjcaWCGrRAnt3F/Gcbpkqo\nHTfYiQCFqSJ41KttYKEdzxbarx3pNwDE6x3esvPyY7q2utdMrKiL4I0k6FdQ\nMckJQTJH7McHONlORYDbMUIcuFS8L7ycikOXyl1Ic8TxuRIPJqqgmn8gBmsq\nDIdNeoCv9tVKyaOpnR4N7rxSG7CFrE6eJnE/zSLmkS59g1sAtIrTTG6c32Yv\nIW4qcv00Ar2JYDyuzaTCt/mhUU1ThJ2oITQcSbpiTHLBPaIIZIBBJRPGX737\n27N8pdLWIh4fpL5dNKu8Ox6vRbLfLM0xAyjDF0ZqxZHWMypSPrnVMZpqJ28S\nUBIIcZvi3hxzxrwHyhFzza2QViRiMOKl4aDvzb9PqLgEEjfhibQzZqVUXia+\n+DT9\r\n=+99r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnzqTBKL3hp7BUErTEPICMe6K8t5VfPw7uLp2JM88XdwIgdkCpQ7JJ+DiWYedEt4p4dz2aaYMAEhZUWfFeMwIIurc="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.4.0_1589216569672_0.823918123282773"},"_hasShrinkwrap":false},"1.4.1":{"name":"react-query","version":"1.4.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"f8bdce97c72b7d6c200c8a47738202672911f1e1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.4.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-pz27+cuW7wDFUYRTFWP7FILsWkqA0qOsC7dvnFFgfUd+BdH9DL872bZrQeQn2//cQqprJUR829T6ro7xs0Y0TA==","shasum":"812150b88fd0e0eb333494325b76761bf1c6ed83","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.4.1.tgz","fileCount":18,"unpackedSize":655383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeusLcCRA9TVsSAnZWagAApJcP/3B3KXCkrQ4jqqjxWTvV\nh3crN6dsfgp2oyARH+CEGBd6LjoW6wN9iFqwt0OB4DOul8N80DQn9FFEvqkT\nEDpHE3MihtHWGqHjyUFQNH669HbPwfwCEp4XloUz5F3X1PyKZZEkXyhCJU0N\nOvXcKJhfMj4ZkShHllQJC74nsu2EppXiHpw6CL3IifDyIDMZ6n5EUHInaqdH\n9poizrNfI4hLV8squE0h7BgDYiwEnGPMsINCyWvyN/TO4q+J/ZJggNGquKbn\no+HU7hpMkkuUsN5MJgPHWjlEOF1LKo33DRnuaoSdKHg1B5azqXSh8//0bw2E\nt9FHNurg69yRkmdpGHDsGPwfytR+l2LqL1mR2MYAESoFK7b9/ObYMbKB+LAg\nsiL9pBVY6tg6QAPnD7xfMja8N5M7zaZLGTvf+mnArUXWUWfsEZe7uUM+dFkq\nWhHUVGF9nDX3GP9frlUwQuiXRvuAn7c+7i+3VKVWmLADCKMyjqwMBw3UKqi8\nHFbHh3gVvjJi1qP7NiYGhgV9KJbvzfam5eB8XafJkywyc3j6zm5Ws6dvXEQX\nJwQSZNDbABsVlWn26OEfL1UFJh2BLsi940kTAwVyMVGfsqgP9w94LnL03j9f\nr+hxWWudIolc2oXQwQCJFXrztcdVIMD3vAxsHL/CUVhryg881Bsg2MREAjhF\n6qo1\r\n=/UuZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9RhbzOrUAZ0MCWeDfavc5f9CLpSMdWE94YPf0nyeKLQIgU4M8+Z6hW159Rl+wAcG6HYXlKMaeWujylbIAKNq3cJo="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.4.1_1589297882878_0.7833124878749949"},"_hasShrinkwrap":false},"1.4.2":{"name":"react-query","version":"1.4.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"65543e566efce5506dedac5459298792a044096b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.4.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-d85a1iNH4M9zBRO9nvFfJkZHudsvZJIGz754wU8na6MKw9Q+Dy5hZY/GKViG2iS27evEa3ck4xhJv8OhRsV9Jw==","shasum":"1e7b3d30b8167062ea96e6f1583c95e95ed3b5e0","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.4.2.tgz","fileCount":18,"unpackedSize":654180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuyYZCRA9TVsSAnZWagAA1MwP/i0hriVn7x0WOv7lvEbT\ncijDBNfvy3eQTi2KH7UK2Iwkmn3v1fihkSkTTURiA9BZha4sZKHomo1/Goeh\nBAodiNiuA8uds2R0x/RTRqK8GXKTyZy1rTvBxbsdRNVTTJ58rcpVpBeLRDV2\nY1khWNgZPsrESjyN5xorl5i4go1YQ1Al6R7axMiYGWbYEOszHRl0OPvnA/Fd\nNamI6NZN3NBTYFfVbTbiGjWUaVJ2PQumCgOr808kY0MQuHaqOFOfn9HJoeH8\n3enfFqPm5eL5vcP/ii7BkzEmefH/E29S2DNKzM4c5FsOkEXG+MPMUzIF1u3k\nG+kOVwphEolAbPLOwK/82aBGNZcPJW613/ur6vhanch7fuaEQKgqz+32f/MG\nW5WHFMOLBlne1Y6KL8bcuwsJCSF/i1/OURj55h4f0P65zcKCS/m2ZtyfYHYz\nz1oI/MPp+LAHgB1BWUJsNmIBlBk5EMZC19nnlUT5ByMn8GNHZrZi9EK6zxPp\nHH5SazHSAGkqc0fDNl4pGasn8q0LAY82aOGNfZ/j/tyCsbsjbQrryET2frQv\nCT0YWwEDYdSEKJA2gb9TmH0XR7l2IMCXLeMqiVTA7bFQVtIkEtXI3Y22jH7y\nycIX94BtyXCLdQGf1TuOnwIgqJQVQBilGJB2ETF5CAJDxyAjPpvMyYA6DZI7\npzdZ\r\n=X6UO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+95408j67jIbucX1zVhSe25l4gsZaYdVh20UlKS0FYAiAb2vr324ul1VlwCpzijC2wuymaHdVmLp4Kaqz9i3OLjg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.4.2_1589323289117_0.6120395468572783"},"_hasShrinkwrap":false},"1.4.3":{"name":"react-query","version":"1.4.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"88031d8c0f531e10a64516056cf0e19e98752e61","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.4.3","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-BD6T8a7eKrc6OtVmAS/9cunT7mxLsjsgJ/tvLlUia8FhOuhZM7n+kUH+nNOBjW2ec3nuQQJhL7Q/3vnPi5s9oA==","shasum":"3c921ebb182dc833526b3cff0418d0e31439a67e","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.4.3.tgz","fileCount":18,"unpackedSize":654952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuynDCRA9TVsSAnZWagAAACEQAKJe2tknxc/Ra+6GfdXt\npUjFlD6CVF+qW1+IYJSBz0DxtQMZxPZ0RRLIOxQjJvzcEotiNA4FwYbivceZ\nAjXf3kuMwXGUAjEu30gTpc9yVxt79eAQYJQz0gH9x+8OlKcFzOjfqMtOPWfO\nvSqpyWcph7UtDhVdYjC9vUg5nbB8WULbF4WbLqvxujFTbqUX0zuFbjht8+bw\nnHHFpv0TLD1x5kSeeOV3N190ogATr9serI3C5lEGcH/FPlcRGxUK/jvL5uA9\nG9jaZDTQRJcJ+aO6VbfxlfIMw9++JBuhC4ZgWxtRrJgtaTE08Q3t4GXqiTCP\nhKj6Jv2skQ/D22gbIsxAf7r+jX8cR+mMK4T4gnnc4QTkRLlooIumAonioQoa\nMUiXBF9/eB0oRRTGuX2cP7XJd/GU7YPkK4ZcvFiqCqVWaHJ4ekS7NvwawzBP\nbEQcG4OkyPgwpdbM4Uhu/hVtXU+h68eygAnF12dqKIqi2lo3qXc4laxmoFxG\nqI88NSKeOCMZAw3SbYStKIvAuq5xnUAfPJD1JsXG+o0kFYM4IPHqPpN0OZON\nyZiJ5CkQ71gjPSb9f1Lz4FtxfP2mfQfC+aY6yVW85+JE0seYd1UEW5nUUFyb\nTZeMvpkzzFApJN8cAJtbOqot98G5H+Biat5nZAy8vpYIl6ZmzVgtIwZlbo7s\nuJ7l\r\n=JUen\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1tL36HqUCBOJfhbheB+Wj3wLD+RBdHtSiP6mJFLinrwIge9H0d+S7F0Lij9bxtvqTvY4SctB8YAgRAO+AZ38Xg5w="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.4.3_1589324226392_0.307254236567424"},"_hasShrinkwrap":false},"1.4.4":{"name":"react-query","version":"1.4.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"f6715959161e5d146855906c8a004d7493061d52","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.4.4","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-WDjQp3ujw9KcbrwwDausMrjLMOv6j19qxfhnUXSf+N73ku28uwrKFPBGbKbmj3n/ybnSN//7KLey6LT76KtFxQ==","shasum":"81822983131f79f3e09b44669d78c8ec1e409347","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.4.4.tgz","fileCount":18,"unpackedSize":680482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevMWLCRA9TVsSAnZWagAAJa4QAIdxA57JP60u0S2x2603\n804aQowo1NSDKSTYNNR73UqXbxKzXqqDuB6TDX5lEailSi7SZtRkEqoFKW3C\nkYMq/T+RmHP6ic7Qbq15f9wRvqOVW95D0Y+Q87fnR+MziLv38VMXoMoozTD1\nUBMlDpoe7mKYrTbVz4TQS2jybdWvako+O96xcajbwWMbR/X7Kz119nF12286\nUw5rQu493Bp6W6kAgg+EcCPbMwIYiAPJ3kDm0QKnBircaIHXVes3oMGOUxgd\n0x1jhBxKRUySrSx/dutJWbQrfFSDlaGQ/hIgTjN6vLKJ8cwieJZit8eNZu9f\nrNPo3LUq62ffqZVZJNUptMp6rNe7mxV8WpSWqLZoaDCRAgG1HVcyKe0Z6iHI\nCwGNnpQzEDiP5rudKa9L8BSW5DpEfZFcZE6B6MVQXLpvHZPdn8Dm6bdhP3kb\n0dlvDZ+MUX1YwG7RP9yPz80+KF6AkEBE5Sqk16zBKzNg1MGN7NITyqlYT1gc\na7/LTETY/nOz76cwFhamTdpIkuY+icDETPjc/JgG/lv4cJjwP+S+4WXqvFfa\n5s1Xqi64cRdsPE/kuUZvAwEXY7gWmzWsbSr2yH85tkoyIYsIFyHZK7k9/Dw/\nXkbgOXSf27KcvcQbpvB4RsNpm5weF5vCnVhE4GLupQokZaQdTU3dpOspeEwH\nYH1u\r\n=jKtP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2sbRx2gO9o99WVRetNKNiHNaJ9OXdbCa/z0q/IlAdSQIhAPSQmhmAaLw1i1LHJUM+3o1+0V0s3XXy3W+Iyp/E/fzw"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.4.4_1589429642647_0.955341721606283"},"_hasShrinkwrap":false},"1.5.0":{"name":"react-query","version":"1.5.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"3ef9c7cba1fd7c859e0897ee663a122f14afc5b8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-iLKiPmTjIK1S7jvhPhhnonAuy+ODo4uc6yY9eXNjqn3K1MbWle/d5XyaLIqzP2iMmzcbcUn69ml8s4LOd6dR/w==","shasum":"c63f3003cab2ad9d1e2dbafb017385d9ca92298c","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.0.tgz","fileCount":18,"unpackedSize":693594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevwUaCRA9TVsSAnZWagAAjGQP/idqj8cAabDZBYwGOlmX\nAelTJw+CEi8FgJ43nI+WycZz0mEq6MuuQgPLTkZbTvFT1rnupfqK/zbe/xqu\nhEAfpenV3ut4G8XruSL9V6ulskOBT/tp1Hkv5aPvF/hxEx1vCjm/GOIzfyoH\ngBMGz8+WS5HcHRVhVN9o6/0vsOG4nfLP+xTlcIWFxL08RaGrgg0LM3m8mory\ngu4MxmIU1MlAlRL1Eok4+W1TX9gkOf2oxjVaH1Ysi0+UbpgBM3lQvuF5svd9\nnbx/x/0y4sOIxytDqnoZUmAlUVyJ78r3ll851D3TBnT0nf98AL18oloZNQZO\n5v+wVRL8dZ1BvvcUfBJr9nTzJZ3Wnoqft8oLHB0DhJdGjMZjnw78pGpakBNN\n658LpjXzy2YAbVvIzYSpBrALn3roaHTorCrBEoyqFmqYfyGaFgt63NA6tzy8\nd6FfcvTdTEYqEJMWCHWI/Rc/bJIkKpDxkiF1/O5dYOkKuhax7A7hljUD7S1H\nQBPhGgOBjKHwzNMxQ3UcEO5+0pBjetfHRbaXLRTt82V86uRKQJdXCQh6aJjD\no6vYQVvOvv3hRjrEaD91XEmvll/Nuio5qcCtZWO6lWrQC68TkLCmd9JdeD3n\n0/SVOpgxh45yKEsHzLatfWSSuMMDoZGVDbrehTqlIEb0GIrzEQhmlKxpJs64\nOe56\r\n=EIKv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYNzPNEqW6e19DhTYhLVLFI0jA/O7Y9GSW+gASaCtiZwIhAKFs507k+qE6P7qQVZVLYiX2hfxXPWfyxBs9Cbx4zw1z"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.0_1589576985950_0.8407302545330995"},"_hasShrinkwrap":false},"1.5.1":{"name":"react-query","version":"1.5.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"80e82daedd37c771617eb034d2a38a87c1c25682","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-shP/WrJQhXWwwlvN7Vb6AMDzZdMxM8hSL89p7Ka2Yv0elaehWsFiBIxkxWjmviyGybzjRRmKyGrkWGn10nE6oQ==","shasum":"e2e21d8755de9076bad86ba5c51196735a18d0b5","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.1.tgz","fileCount":18,"unpackedSize":693724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevwhdCRA9TVsSAnZWagAAEkUQAIzswp+waijR9DJ/YDi7\nzQsgxNy6BTmExsbwqs8JDzklvyfUd4Q6ng/IEV3rW09JUg2Fe4CwYs+doKgj\nY9V4OIg17+FgSsv7ICvaVM+zuvKNK7hOMcsVSk+A63a5Jxa4gow18t7GKPXr\nWaYqI6x9pskzZ0JBZ34Q3dtCPtx9tg0eRs+X5ddXWoJ4htkaj/9N87IlQTj/\n9oxRAUilgnwiF7OVLpTW0lwreXQ7/Dt1UAp2l6Z7i5YbPmTiMoyXWd7cLVuj\nncGDwQx8dKJOCgPN2etqQZBqAZ3Fbgad2V9FZS7npBCxbpiHmhFtSDe/m18y\nfaYgeaRPBzoMRHTYnh8nKxqUyLMy/2ftOEYc5cwv7w8GJxrFKF9x664As/wS\ngSJ3ZPJmV3ZEAXrLYRfO92au0hQZqmJFRU8s+9delDoF48u7C5HDA39VMcQ1\nI3AtQXxR0ws4D/NrYl+AjYxrvHRKtLjj7ypCn12W5DmYAlUBRDQ8X7AUxTLz\nOn8yK+uIxkXKVHm/sjmCAbCrWZnCPb0tROodrEKLcIlXiC5KFLCt9bCQebaA\nDYtYAdn3/Us5jlcHnl464lGYOdhw5eG2QCC853i/W/Ieuho6E3ux4sjLv6gx\nqoGQF1bU0xHou1PEuAWlvsbEKIY1fivcN475K+ZzbH10w+L/gkzes4sU8SCT\nYnSK\r\n=CuQ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAkYem7oW3atopRexXpjy7n7OmR16MyHBE/hviuHvkEAIgNFG8l3H1sG9VvyI5kwCmneIHDsfxTdRo1RqV1YlShBQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.1_1589577820958_0.04249310365070569"},"_hasShrinkwrap":false},"1.5.2":{"name":"react-query","version":"1.5.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"f76c8601a3c30ab279082a94ec1b51ed4920b52c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-dXN75mZiF3mBR2HAPBpsNvltPAW8MwLn/psKwjtippEBMoSa2Cqy7JxizAY23cKvXA0551RIsp5W01GNh/vw8w==","shasum":"955d20ee2f3418476e9ab1080b54ccbc73018858","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.2.tgz","fileCount":18,"unpackedSize":696233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewIqxCRA9TVsSAnZWagAAeA8P/3zyVqk9dkqoz+t8BVzG\nIR7ytHg/Ts0R4AygAZQ94Byjsa5jfeqlxYyLQQ6snjqFZeRRc4iAOq7LiMf/\nq4T6s8i8zrLJEFKjTsvDypUb1c6WQFgCtLLyzruFJF3qXt1UPPLofvufCwiv\n0nrFFQ//Klt0h8gO6IvVYnQzJ34NRlmJWU0hgesV2oK4FN7Q2VGyWFeWtaoQ\nbyV5P4dM3ociX+EM+QP96210COG8gKVAHPEoPmpLIgCOe21A7Uy0jiztBJu1\nkuM/+dqWfaltJi5jrlfKaw0C5RcoaLOuH5ynbupVwkp9FpXFMuRaNZqk4KUr\njhIQRzzDNC5k826sq9k2Szscl525UUD4AxBb6hm47vVD2839TlznMxLjoSzj\n05U5RSpYg3oM9jfqYRRETlqlEbauxNOherE0TixNM/19DY6b6O7zUAEVwfVe\nKtC9cL9zdVOZvPoKRrvnAH/z8ls/u3+OuYlX1PXIesSAsRDhGx6QrVHq2sm5\nJvGlWf/b1LdMxrbCrE0ndJdxGp/AhvXPJRBZjNYo9E82tpLWPuOH2jCBOEI2\n8WO2dnCLHD1F7OIuUcV3XXWGrSY313IE5PbgzTW9ndeQnoeGjAzYRsXkjrkK\nQvLb15CnZiSgYzBmVko7bEcALD4LHcq0falLNLR6co7LioW29L2FsyYXJrsx\nSOY0\r\n=8gdk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArGQv9ifaArL4HlzBj5BUFaxYlY/HI55uhtmtODvyfsAiBSZ6ByuCxWgDHleWunO5PvhBfv+w1N4NOUxodW5SZJhg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.2_1589676720815_0.2974649433373273"},"_hasShrinkwrap":false},"1.5.3":{"name":"react-query","version":"1.5.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"a0f77121c2321ab48f4c013e0a5bd40a12edc5d0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.3","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-KiOdVnKdimn8QCNirs1lJdrCE5o8nFgn8BMmlk2ujfUopnHPSGZs4EaVSuwRynNaTNI0N9U0Fws1Pcn6DtvE2g==","shasum":"672dbda734113e8b0e0b90b06e003c4daeef8a58","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.3.tgz","fileCount":18,"unpackedSize":696235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezRofCRA9TVsSAnZWagAAN+gP/jqI95EhcFUIhJ0SwR9D\nzFdLta14rnJG3RQdMebC8bMeWiJXYv/nYVar+Z/L95e9/vEeCQ3LTdB/qnaw\n7wGpOl6JCDNkVnIUNbyaZYEqeJHh3AuIip3XP89E0JTA5OJPMFo5HAbCzmHg\nuJ5DHLSuTG6CGjAXPNyAt3Pfb+dUhvcpoRXviOMg1k/psx6gHfhGSNJL3O4S\nFrx6ts8iL2rWhiugvp/6ky7W+wa+s0yXtQssyuobpYzw0Wd3yx2PMezncWSX\nf6oU+iDHR7ffJ4v75XMjiJFpua7V85W2380iMGmVTGRy12Er1gCwPY/F6LWl\nistj5uotbxoMdo1p71wHY9N8ekc+WNYlqu6sB8TtoHeVSK/jcRmpvZOtEpDI\nbOv35q+Tj6st6z1FOK36HIveP5tlqoBiSgfdmzEMqpxws29k6+aA8STOuOwq\nXtmo4HGgjsHjYCXPGUC4Q50IL94FKeD0wsj8d1pCaU9CeSIksldW8YEeEz+/\n8/TExB1rO8WFMlYnxwd+mLhA0VS8hgeemdu+h+bjsw3OgF7SKp7yfx7AdEcR\nv+sFACfjxwDOQ0QBLKhinWYWpvUDLdEmC++BeYXodW9DkHOfQy4fauhLufRC\naRs1/jE6eHOf44HRxKmtZlTEnEHGgCUadqN1WVhwI1esYsG4CTIB/N+GghD1\nQqUg\r\n=i5qT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVTQs5U4Z4oQGOl0Te9Shn+jUzqbv8W6eSsJrOElquygIgJ8aA5vSG2A4hFb123suIt3PEWgNvfdwPfVhccQBc0g8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.3_1590499871057_0.19240341072117784"},"_hasShrinkwrap":false},"1.5.4":{"name":"react-query","version":"1.5.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"342c1fba38de69b88441d980425e97da5162d1fa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.4","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-M1wRPo2eFnvCwYadvCtvIKjBWLY+JH7S5jZf0CnZQwcqIBbodKe7DlAduNOBLlQ0OOFK1tIDW+GzySwe5zPYEQ==","shasum":"563ef22b33dfd6c8ff6a4cde2afef0770c0d990f","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.4.tgz","fileCount":18,"unpackedSize":701750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1dkHCRA9TVsSAnZWagAAOS8QAJu0q5xJ/xBAOh49TCeZ\n2cEwqPQenS4qxSg9WxxPcoPiousccw7gVKavHqmlb7KNPZ2ik+2XTFfBQ3ta\nDR1AtfeGW4/ZQoPKmtsbvxfc+9RVuI77SCfyFbaYsuo5Yl+33iz3gm5fKGpS\nx4xShsyI38/YFKp4V8szJ8xWQCWxyVIHLmNgywAGsnMPbAHgTy9G6dmG0xt2\n12cTwIsmmA0t9p0OT9B8QOOX+PjlUwWVXIE7v+KQ7wzB7mifeX0SRS6VhUX+\njdH/dCKgwtRNBhdCQo6AguJZW0Tn+AUlr429lEmbBss1P066+2o1BkKW/nOL\nfOBTMl1PE7ULyddAEMxFVZwArQBY8x0OPeE5jERCXHO1kT1/efJx/OZfolE2\nl7zS4IDqynAe4Fm6+dgg8ALF8m3ZLzinwXHZO8uoO4SmmyiI6sEtgofbQ4rw\nVndQswSzjZt7zIRMJD+SqINZWdDR+rQpq0T85HGKYvj2FtNE5JlxWk952S7p\n0nTtpDBNd/hFwEMmPr5n03pTMPpxcI4FiXzixu3A+KzzykEPm7DTEF/ELoMT\n5LyUcUji2MGzJepiSTWod2sn9A3EfK0VX7PJAWHAuFn//nebS4pCdSlCNyHj\nvTrBK4qc9iWKYFkGRZMVMSiODVqo9Rai7P2Pp1czztunEnYtIk4rR02w6GSI\nOhNA\r\n=Jw8F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlCVz27EBYWLApUVS+1CVqwSXZUu3qf6+Slo9ouaA4iAIhAM7X4eOQncRWnwiQDjBqg83HpWWI+BM5fSNvT63skxSH"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.4_1591073030884_0.7424728935971143"},"_hasShrinkwrap":false},"1.5.5":{"name":"react-query","version":"1.5.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"3a589bb50ac35589dfe1ef4208234b5bf10d26a1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.5","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-6pUh6/qSf3e8HNMJFMIfhqluE3WZ8F/ugZGrNZ9YT5zvftDlXNj5gdY9ZUK0rldkBqxUHqmiNAePcaApHCZMFw==","shasum":"6f94e061a8ce9ff1fb746f2c50b588711aa0f070","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.5.tgz","fileCount":18,"unpackedSize":701758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1doUCRA9TVsSAnZWagAAZWQP/2/Ym3WxhvKoYZCerYJ8\nD9XxZDeotyEIn9gfPQQBpH3OVZ0IjxHCWH0xFG3Ya3e/EOEzRxCi+B7yHlQB\nzX3bTY8tCvbLqGNPtv/Bk5gf5+e3NIbviJLmA3Xo/lDUwZbvZmEOjfhX8yLG\nrV/yhK7kNNLwL1aJROUp/ujsIdzdC7kSmogpIRW2xJOUqZ7EqhV1rCpE22He\nmowYCUnuAxYFbliWRlefSjvhWlOec10I44ZmgQD0SVVJei2VZGV1Bzpgy4Jf\nvrwjlatacQQy0qlIw9UKWMB38ogEzYVyiGXrRQAihknMw3qN583gJHiMfyJ+\ncka7oVugqaIwckbcoYlAdj43QqNBnlFqu1fdBRzw2P277akc03iUbS1456zV\n1O6slv4OKYAIAQKgXA8y+jHeikmWcFb8s9xnBd/keyj67ouCXjxAKfmWwN/r\nwFsRV0ACZklbwCCKlj5bJj/GznbvFzoeXIIPzNY2hYXgtSzQS/8vPNR0oGT9\nmWGmi51qSJP0nJH2/wwoZuKPU+CVZDWnGxQuQalzjLHKAjGmQXPcOG9tOvP9\nzzKZc5pUdEHrB+fHMl77JymBcyh/eF9dytoQjuBJtPDBYQGSsQZ9pI/oecTn\nE7lSlYZKg1sIRFlu/TvjeFsp8RrmJNEtK0YA7yogP61YmWDtvZbUlS2zs6NJ\nEa7C\r\n=idGp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGohV3KR2Qpfa7LyTozrgiVlthjpjkEUxGsOWTpOAzMaAiEAjK3cOZXF2uxn9N5XT/NSaGjzjH7OE+c3A2c6gncZiTk="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.5_1591073299713_0.4529929197762861"},"_hasShrinkwrap":false},"1.5.6":{"name":"react-query","version":"1.5.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"94cdeb5a3724bbc30d4e4b7988138e3c89f388d7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.6","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-P4Km3Mlcyq5jGwd2HJaB1WcdNUEtxgtiVh3/5LjPsfjS/kwQY4s/0PCNKxy+87CHPShW6XPVonSn3tEt8Vs1JA==","shasum":"3aa567196680d9dc8a3fa36b2cd44fb55d062082","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.6.tgz","fileCount":18,"unpackedSize":702007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3k76CRA9TVsSAnZWagAAvuEP/3PR7p2c5+V6ufOdgEyw\n72Q84DygRgZt7LOMoh9aoMrAyXykSPyqE3CTblT/Xx8k6AwyNwAjAhrZJmt4\nSwBnklBUHsiJCbmXkIGEbS0DU0ROG3/9noMcyCikvUiqk4MoQ7FEcm5b75+b\njU7nnBkjVgi7rc4+yTy8HTog5BGU3XEtdkqf+/lf0zrbmmfYIZMVrKQKNabq\n6R7GfYmhcjM8VkQ9Ekj2JklxUvU95I2cGroB3NDBjjUx732KvFK1oWZHLddV\nspJOrwg+yLeLTMRa8DGohXEGEXgGYtwougoSvYne3GNOVk8/sSWUAgTsY+gu\nhPLJra08MhMIDgbpZjhBYoQPQ/oDjZjcXEiqRI1lCFWjnoT7x9W8TsTttS49\nQDT4O6HOGGF34fxiP4Qutf1qlRCQHoq3eZ7yvaDN1YtHKEfBTXxf2ZZiTXfb\nsnUBxOKaBvPm/apGzUU5epBVanJKit5ABelJgphU1YWMr2HhSprjnaps0qpE\nzGqSSxw9oMXDbZf8UeNLtgfiPOd+vCNb75Rlg5VsGQDgAKxCHrdPt7hVfTsQ\nYuLvgdlX6ITbQrrSCdS/VexI8Exegyq5if5P4Osz/GobtVa4omJH6VqfU9Su\nq/VPuxPz2L/MXgNbhrDdL5QHcaAMrGTT+tpBUO5jZnGY9SgwK1/8LSrOCCTa\na1tV\r\n=+PVV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfUpfnTSg5RIddpYP0vgXnZdgsZFVL6IypCOMw8maikAiAKscQmu0/m6qnanowN7/7ZG8F1fwnsY8PPATZ0QQ/rDA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.6_1591627513982_0.9829872644875552"},"_hasShrinkwrap":false},"1.5.7":{"name":"react-query","version":"1.5.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.0","ts-toolbelt":"^6.4.2"},"peerDependencies":{"react":"^16.6.3"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@rollup/plugin-replace":"^2.3.1","@svgr/rollup":"^4.3.0","@testing-library/react":"^9.4.1","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","babel-jest":"^24.9.0","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^5.1.4","dtslint":"^3.4.1","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^9.1.0","eslint-plugin-prettier":"^3.1.2","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"7.18.3","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","prettier":"^1.19.1","react":"^16.13.0","react-dom":"^16.13.0","react-error-boundary":"^2.2.1","rollup":"^1.32.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^10.0.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.0.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^0.6.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^5.2.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"cf9bd9c1671274903879945f4802ca23b5a25bbd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.7","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-VyX3CwfRtEIQN5Y34cOX8cIx6pKsJMKlFrfCtGfbBDLbmqgMQctc9i84W7FjI+eXcDQ/BMIASccyp5D88N9znw==","shasum":"e7019a4764bbc01fbd033c1a5a2e86a69d7ab3e7","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.7.tgz","fileCount":18,"unpackedSize":702471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3osICRA9TVsSAnZWagAAS/EP/jLWU2MNYI/dI/Egjo8e\nIivnOlyRCu61kEFsaBeH673t1FvAjHx18B7a+Ly2MLiajZCUWBb6ntDhNaVq\nklhKY+uMJrBkdn3iYcdsRDlnIv5B2it0rrqCrEpu629zpklodnirqy9hR8ih\nsgReHEdKi/5HSySSsPuIPxn9H0luIzfhK/3Rkhr+/flNfqkstffqabfOmSuC\nfb2hhWetHoGDC4rumf8Hth9phkho1o9lftevGZBdoxeZCT8mIlKYFT5/TTPD\nSpwhiiutdVSHeFYzTLSTrPHMLjwiTAEZVlWH0FbPHk4GqdwT/KOVzmRVMFdY\nndnCgBZkixpBLnsxNA3oXEmpgAl8ZrzUpou8x4hsiU50uXq7cnCUCgynFL7X\neoi86iUz23kW+CJJKOyM/U4KrQHi/2LgYGTcsaSxwHVP+wy6ZyhK1Gb2GMxf\ntCE8pBeU8Ad1B4wXyd1k0o2wJAWHJ9xOBd0itYZEHjb0Xn1usXl3niqEKtKw\nVrOfFcuUAG8c5bqt5zD2+ZFa1vVSRO3wtuQ02B08E4qUYfyAHjT40QKtC0vc\nng/LA44o1pKSlMxytIP7R3G9wVoqw+8KibHZ8upUBCn4oxZgVMaZLEfwW6dk\n6WHGON62ZF3nLQHjik4otggllDu1aAXsme6jcqkPsN3d++ehpSBHIYDH0+fb\n16Hh\r\n=aPdb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfdk8aXHud0omGx0cGHK1h4/t9v0N8vpCDAaJzDcoFSwIgGTW4yrGAOp8hjbjguvXSHAI6HDSIS7yFc3hrmb8CBs8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.7_1591642887521_0.47874969127108846"},"_hasShrinkwrap":false},"1.5.8":{"name":"react-query","version":"1.5.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"06feac8a2daf720b0973c894f1f8f4a33c535baf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.8","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-tQIndH00/pJ21jCIche2jwcoflNGPrSBx0m9MxuDEbTwbQztp5dCzN+3/tKWk6dRw2jrhsV78KhoeYrR21SkZQ==","shasum":"80cd99cb279d1ff0ac64122761d95a3e4b014d49","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.8.tgz","fileCount":18,"unpackedSize":621377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5sxxCRA9TVsSAnZWagAA8uUQAIZxIWfYgij/icCB6kxs\nzh6ArxzdbwFb4+0Mfx7IaWf7MSx+CLyNmHyM1QdcP/gE0M2pb8JOOWB+aSqn\nk99uT7q8e0WpTewVIEXNoey2QOFYSQlK3n/Le5/qnJXjyUHW6IUsveeTmxV4\nOQpdjnMzYnZhhTwOh0MaJlxus5pqCsobQRl43uiTXuYKL9LKOSgN5ueg28Sb\nZ5/6JQi9OQERAuP/Yx9Y10CpX1+cqWmQrrR1tkulL6r0zSyaYSvwXqfbihRP\naGyeFH2gp8ZQwE1PFDI0QYFjuoT8j+a4cnce2+yoLnTtCjh4r4rFj9lFpKW0\ny4ZzjdiayxLfLe5DHisl5pYxfb+nQLFFeapoL81s+PhW6qWSQzPO408DDsTx\nObBpfR/gP0lFp+YlzZE3DMGsIu1Ae4bUvjqHMx0PB/DwFoa/IKjCnwMYnSYU\n/d+w8hQjJuEAH6uCAAMKQEsqjSxL6K4PgdUGf7rBE3VsVUYeAeymVX2RXa3C\nurXjYGCy4INfPWBlh/KGdbTP4IWUWiKPx62Ru3ad+0+OF7GL4+E2OI+FQ/lT\nCaGeackN8J9+kQoUk+CCeiNY6NoyMgH5oOuBKn5pJKA6obhUx/fuj8hc9fJV\nqj4l3WBUWf7/ImzfrfSxHJ7amJrHiUFqIAAClSSyvcF8QMWrBO5rwZa2A1Gi\n4zVp\r\n=do4/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFXklS5D1TLEDO8UuPFNUU+IJT4hWheofCJ3aVC17UTCAiA0UJBUxh6A5Fmw8H8Wu4AmNg5SS7Ah+Gcui9LtoKT6Gw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.8_1592183920918_0.885609502381022"},"_hasShrinkwrap":false},"2.0.0-next.1":{"name":"react-query","version":"2.0.0-next.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- 4kb - 6kb (depending on features imported) <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Used By\n\n- [Google](https://google.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Walmart](https://walmart.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently and automatically be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries, you'll see the use of URLs and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    // These will be used as the query key\n    ['todo', todoId],\n    // These will get passed directly to our query function\n    [\n      debug,\n      {\n        foo: true,\n        bar: false,\n      },\n    ],\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById(key, todoId, debug, { foo, bar }) {\n  return new Promise()\n  // ...\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, variables, queryFn, config]` options are supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  variables: [],\n  config: {},\n})\n```\n\n## Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n### Pass a falsy query key\n\nIf a query isn't ready to be requested yet, just pass a falsy value as the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsy),\n  // so the query will not execute while the query key is falsy\n  user && ['projects', user.id],\n  getProjectsByUser\n)\n```\n\n### Use a query key function that throws an exception\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', user.id]\n)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n## Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically fetch on mount\n- The query will not automatically refetch due to rerenders, new instances appearing, or changes to its query key or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n  f\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `true` instead of false\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query helps you to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries(['todos', { type: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.invalidateQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to **add on** to some of the `useMutation`'s options at the time of calling `mutate`. To do that, you can provide any of the same options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired before the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired before the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired before the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData,\n  refetchOnMount,\n  queryFnParamsFilter\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  variables,\n  config\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  fetchMore,\n  canFetchMore,\n} = useInfiniteQuery(queryKey, queryFn, {\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error, reset }] = useMutation(mutationFn, {\n  onMutate\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n  { ...selectedUseQueryOptions },\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `selectedUseQueryOptions`\n  - _Selected_ options of `useQuery` are also applicable here. E.g. `retry` and `retryDelay` can be used as described in the [`useQuery` section](#usequery). _Documentation of these options will be improved in the future._\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **before** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`.\n\n- If the query already exists and is fresh (not stale), the call will resolve immediately and no action will be taken.\n  - If you want to force the query to prefetch again, you can pass the `force: true` option in the query config\n- If the query does not exist, it will be created and immediately be marked as stale. **If this created query is not utilized by a query hook in the `cacheTime` (defaults to 5 minutes), the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, queries that are fresh (not stale) will not be refetched, but you can override this by passing the `force: true` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  force,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `force: Boolean`\n  - When set to `true`, queries that match the refetch predicate will be refetched regardless if they are stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  // Global\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: false,\n  refetchOnWindowFocus: true,\n  queryKeySerializerFn: queryKey => [queryHash, queryFnArgs],\n  onMutate: () => {},\n  onSuccess: () => {},\n  onError: () => {},\n  onSettled: () => {},\n\n  // useQuery\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchInterval: false,\n  queryFnParamsFilter: args => filteredArgs,\n  refetchOnMount: true,\n  isDataEqual: (previous, next) => true, // or false\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"a90274d263607a3a37d6b0e8ba8e36fc483b0f94","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-Wr6J60U4U4TS8KfsiWvd5zWNj5+KuotTNe7c9YLc4WrBCq+4mLHBdL9ES8n9HsRRwUnQ2CA021QZ2DlIut1ibw==","shasum":"48c7a5a055ea8a547059a76f2af1c1ab93c6b9ce","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.1.tgz","fileCount":17,"unpackedSize":606570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6X4GCRA9TVsSAnZWagAA0z8P/22tbADl/wix2WUETzY+\nzcJkT4Xjz5jck558o8QN8r01wa1BSeqmYpzERmUKob4J4RVztSiG3VaQaWso\neWajsIGCMKUOSY6E3MXQOPmWQ9YOd1IpdBJg3slkFAiNmuQnQoslzqvGj6zq\nxw9hovPV9l0pWuoenccIxTfGWs31Sr4JkbNXOAOo7675YthTScSuspUkhjWn\nMdOGvKg5Y/H2MeI3505zRx6fRAtWJH4yilRsyucLuL3+7bdszdvBOba5Ni1Q\nBgayV6A7H+q9e9nEO/z7HL4Z2MbikYWzhFIfyI9SROF29VmJgLWzb4OFs+s0\nxMZMA4d0xJqvVEabRAscHNWzsr+f1iAbJS5LuEBDQnQFE7jvua0nFB9gQVEy\np34QebYRYfvRqukAUSJL08mP66aKDZD56IpcYxqKo2mpmOMKY3rmq8id+s1A\ngyVkweTnDEFgrYqCnNVUO2D5PMwMpacuaPU1wcQn9WcrGGIkl9fxs8CvYxUA\nPjw1ZHpKxspGeqrwuGzGKHyGAV8vhAqKyNCa/qQUYmrbM5GtlTgszaGGwAf9\njcvpl9VnyJ61qo0X6s5rxgO1ycjMabC4MVQaXMTha79P0w0gVBouhtku0VRD\njD5zvfwqxj1tWCqBQubeLswqTmG1OnaDgyp/KTNJFz2wSt2Oswa9pWH/ZStj\nkNYF\r\n=m6FL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEJI0QGkD5xNL0zYh3rRuGONRxEw2ehpp2qZ9GxxgiAgIgT5wSas4lZ6b+wfodh/hCyB12UA/fkkrQ51Hs6l5BuCk="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.1_1592360454032_0.1035155751059027"},"_hasShrinkwrap":false},"2.0.0-next.2":{"name":"react-query","version":"2.0.0-next.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- 4kb - 6kb (depending on features imported) <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a>\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Zeit's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Zeit's SWR?</summary>\n<br />\n\n[Zeit's SWR](https://github.com/zeit/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Used By\n\n- [Google](https://google.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Walmart](https://walmart.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently and automatically be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries, you'll see the use of URLs and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    // These will be used as the query key\n    ['todo', todoId],\n    // These will get passed directly to our query function\n    [\n      debug,\n      {\n        foo: true,\n        bar: false,\n      },\n    ],\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById(key, todoId, debug, { foo, bar }) {\n  return new Promise()\n  // ...\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, variables, queryFn, config]` options are supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  variables: [],\n  config: {},\n})\n```\n\n## Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n### Pass a falsy query key\n\nIf a query isn't ready to be requested yet, just pass a falsy value as the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsy),\n  // so the query will not execute while the query key is falsy\n  user && ['projects', user.id],\n  getProjectsByUser\n)\n```\n\n### Use a query key function that throws an exception\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', user.id]\n)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n## Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically fetch on mount\n- The query will not automatically refetch due to rerenders, new instances appearing, or changes to its query key or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n  f\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `true` instead of false\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query helps you to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries(['todos', { type: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.invalidateQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to **add on** to some of the `useMutation`'s options at the time of calling `mutate`. To do that, you can provide any of the same options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired before the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired before the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired before the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData,\n  refetchOnMount,\n  queryFnParamsFilter\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  variables,\n  config\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  fetchMore,\n  canFetchMore,\n} = useInfiniteQuery(queryKey, queryFn, {\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error, reset }] = useMutation(mutationFn, {\n  onMutate\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n  { ...selectedUseQueryOptions },\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `selectedUseQueryOptions`\n  - _Selected_ options of `useQuery` are also applicable here. E.g. `retry` and `retryDelay` can be used as described in the [`useQuery` section](#usequery). _Documentation of these options will be improved in the future._\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **before** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`.\n\n- If the query already exists and is fresh (not stale), the call will resolve immediately and no action will be taken.\n  - If you want to force the query to prefetch again, you can pass the `force: true` option in the query config\n- If the query does not exist, it will be created and immediately be marked as stale. **If this created query is not utilized by a query hook in the `cacheTime` (defaults to 5 minutes), the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, queries that are fresh (not stale) will not be refetched, but you can override this by passing the `force: true` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  force,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `force: Boolean`\n  - When set to `true`, queries that match the refetch predicate will be refetched regardless if they are stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  // Global\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: false,\n  refetchOnWindowFocus: true,\n  queryKeySerializerFn: queryKey => [queryHash, queryFnArgs],\n  onMutate: () => {},\n  onSuccess: () => {},\n  onError: () => {},\n  onSettled: () => {},\n\n  // useQuery\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchInterval: false,\n  queryFnParamsFilter: args => filteredArgs,\n  refetchOnMount: true,\n  isDataEqual: (previous, next) => true, // or false\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"9496240604e16890760b75f62a1efff5a636874b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.2","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-pghPn0TIs8SRXxKA5mXb4J9p0HzQ25r/J40ToDefwyMTq+GH9CqGZ1PwgXzQa3yZ8NndHinIrPbSNkxDKqRjVw==","shasum":"1ea3a6efb234e76219be945b0944fac57378e4f2","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.2.tgz","fileCount":17,"unpackedSize":609010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6mI6CRA9TVsSAnZWagAAPusP/09B7vOYU1cdhFMoeNhT\nWashJxBqp3YPdCrlcOtLMmnM1OTlQgSITEpj/IJNHW5kV2AQlMO4rEHw7OIR\nCRu93tx2pRPtV5dxa9BbtAJ5OVv1zr/bOMGWmjCmPKYbR562BKlHVPUoIuUb\nvnYQw6w3TDamdCRG7+STxal+WxSLMWqlgKwHAVRN1tUrTbgpvVf4pauxYkPT\nbRto639nccrm+WJXG/h/X3DMd3jMhLt4mbPpfKeBrk04mgrUBJRAdkMUMr23\nAu+3gNFd4lsFqUCAeEtDDEPek1JRW+tBQ0lRFAg2MsRmRqoGnE4SyOUr33SL\nouWPvPFGSNgzWDu8QCVB++jaKNVwDGmnOvar06HNGeacRgYQpYp9QUvZRKmU\nppP1V1xUDnVwjYBg7Kk/yxsfaIV/CUN4RU2i3zA9oK+QkJXDOi3eBWYR/NlP\n7coc/5s40fxezyTYZRiKpt1iHR8oTz9uT+bG/4VLNnEEXnWF/sUiDyAVdyr6\nvq8BhpGSTPuiQB/3MJQUtjZmnhxTXYF01Tqm4RJzPgxLCY9ttU278l3ms5NA\nhhosNqyV/hDmgCI9LUJQx1i9wEWs7Lu+uXsfSrSChR9wunqbEDO1bSZn1mzh\nI40+i+wJG7j8l4gSpDSaGdBiubqX5Og+xrSnC1YymfVpNyghpPE2vzYIq9cO\npVeJ\r\n=wKFs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxUuvZqZGNWMFdERhYS+Kj/XxAn0veTwdC7YZ/MjiqzQIhALIpzGkBNRBIHqC57OD262K2J5CJltlKqFcwuA59MlOi"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.2_1592418873796_0.4081694602186159"},"_hasShrinkwrap":false},"2.0.0-next.3":{"name":"react-query","version":"2.0.0-next.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"b6314abb4ffe86657dd1e9f81ab097e75f29ff7a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.3","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-B26IkpBGs7GwGlLDh6AxIn5EgtDfmAVVAxyEDcGqcXpj1ai6hvQ9ZJYlVEqdBgMsljLmYcnnOhliRR7xsN5rbw==","shasum":"3dd4a02ee451445b7affcd743fc41c351ada0889","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.3.tgz","fileCount":17,"unpackedSize":597724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6xviCRA9TVsSAnZWagAAGIgP/jV/AkTZdg8N1PouX0Uk\nIOilCrePJGkyCYJHPKmUC0ZURONwFN6Npi51v0cPbeUsqR2PeDjG+UMkvnKn\nfUj4t8nKtQ13imXK8GsEqaDx91CUjdT2BD1HHzFdRk4l7G9TKNvCSkNEVpY0\n8+qyWMbvUsU8Wd1xrWBAfN33B4wNMG44tYUXOOx/rtC5SipN1E7d2JXjuXbK\nui3i3e2dkPfWExJUQvDwFSlQgrYtf6K05RNFTueBAa2RF35xIdOhDak4U/ha\nkt/XQtUjymbRsbV7dJlnDndHogj0ggsqe14BHLYahcMe4u1LAeJOTbz+L9Id\nEovcH0hXN6knKXbikh9L3nbJcNfYD/uAl6OM8xMrbb4CjFQcBlgSRuORlapf\nIgVEgr0LbRkazBhSFndT1xrRyIrMctchj0ham1MN7u4mttCfqh48u/jD/abg\nEwkLq55liEC7Ip4zYcwmcqdoPX37YQoZX+/V+G97+qAOOQayFLjmbJgE2eba\n9zXXBXEXwI8pZCZ0zXH3710xp4fPFDOb8mEzba4wVvvZtvvmmFvk5BYxwKjw\nBFupUo8C2ZQ4wYxPhp3Wh8vsaeX7DWLCwcDC8xF2I0nq45nXGg/G7ynxGlju\n68gQVT3pybK+/70Dr2TIwHoMapdsyn/YLq1M9vX3znQshidBWNX+t8PilXpj\nTnOF\r\n=ZiAd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQ5gi/McCHTFAe7LH4JTJ6ieiYWcHjNwvDlBqtCJHFuAiBP8OeCAszniP8stAe/mO88DSKCHTMlPMKmorUOac4Kpw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.3_1592466401544_0.3512669860448576"},"_hasShrinkwrap":false},"2.0.0-next.4":{"name":"react-query","version":"2.0.0-next.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"b9168b83f1c10763d29d730a6f3527bcb930ebad","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.4","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-f4yVb7w/vOlMe4SZ1v6X9proLeC64KMTfPEGjhO/xMH4QEDPrjYAsnap9q8d9TBHnfrAWdb5YQmJ+nAKGjVfyQ==","shasum":"1db0ac1f6077db31a3449f1bebb3cec792bc2a07","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.4.tgz","fileCount":17,"unpackedSize":602646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6+95CRA9TVsSAnZWagAASpIP/3DfHZrEd2Q2HG/HjhL7\n/jHh9FUVQjwFV58abMpfg2D+Wjpn1jyX3wRlnbYaLJDA7Y4YZpBcX5XzZFKL\nHfb9jasz/di94R3H3wfz1UiWwnS/xYZem7wuHzTsMUsGyfsNJ37xAURefvwl\nUu6zsUKUwWAcRCGhA/khfqulUF/ku8pTKeFWXWlGTeBUXyOPi2r298g1I38b\n4K0H4Tvmf0xG0CU6w8161kym/xUGxygagFGvWU4dSMQiF7g4YXyrTrPCTd40\nYeWCtxDUDmYBhuc8Egween1NU+d+XmzZTRyzEGlipZmRzH9Hc9+57D6q6l/p\nRTXkJ9kmh/UNSTB584OZ5ZBK2j5ZQKaxWHYA6hfx0MPdTNqzXR/3w0nF0yxz\nLAgJB+woWrbi27o88TH3XBku34KpEqUsFPHSD6duvjyR7aECcW0MjXvhtgJN\n5HE9Lm8RcaWL4ktgH0zA0y3MaCsfGHZycsc5jtnhz7lU7JspnoLgqKcbnJjL\nwPdLbyHg87T7KbkGE1jeImPrvJTOAgp9PPpjU+XMUN7yd7eH4/gzqta6S5fM\n2N/9TmbdXfpLrw50JIPC4kxBL//kuRzJn5VtKeiUO9B70OOmLmq1OcIb48+L\n7d12sXiLy976HNKJSCjbTsk/Cq4duCpqpXa++yRz4XX7uJhQwQv1kpmLl7NS\n/g95\r\n=6vu0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWuTpPglvqRWWRt3o01gxG6dWv3Z36ZEk0NdAI2CEnvwIgEQfGNvAbzfJYW1jJE9y43TIaL5NvOY4oQTaCg5h0H2M="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.4_1592520568908_0.06792420559622458"},"_hasShrinkwrap":false},"2.0.0-next.5":{"name":"react-query","version":"2.0.0-next.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"591dabd9397dfa7feccb506b718f890835b5a33c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.5","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-rvLZU40kpsKVE8hnxo1UDcxpehWW0bkxwTI5Usvga2xRS5aR/v7WeyNxk8Kuv8Srqpdjvh5V7N3WEx7qZQKMvw==","shasum":"56e20947556c9d68703ba27e918daf9848989e87","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.5.tgz","fileCount":17,"unpackedSize":602921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7O6pCRA9TVsSAnZWagAAYZwP/RCyGPczFozbdPMzhsdw\nxB+DkW5aPPCvntV004nTSPzQH9h3242SI/ydDdJMk+QFuhMUcM5r4N/4VobD\nw0pv2+Wdz3R7avqsgR5NjzBxgoD2xqkupMVmUcj9wxrsXpxNUPCc0P1TLBef\ntnMwxf0kWFKDMMQ1W/7pcOd6imJEpDNrjHPsAVW/4UNNuU5b3L1DC75omi6y\ncKzAwsMxdIJ79WXhIH20uzT1JvbqLhslB4WgLGSfBkLGljnNrVvwmHfz/AcL\nLzCajhCTAGdtTZ7jMtArDuD9HDFdloF84+63jodSlbF+DfsQt+HrUC5zptKU\nieKJKmUmPogQrTSg+/3pSTrE33Uiq1ZMzbvT1MmuwWdwl0HtwnyOvPSurLi+\nCp7DKNmLhk/G8cs62wC7UJl2E1H5JvDd22FFT7JK7mVa9g1/gSHHt2S2/dHl\nU26cF3NqOqG/xFhCjQzWA3HnUoSSl1iIH8czywuF0Iyhk4/TqjvAxF11hLbE\nfjluXyu+be1qiHtBmd6P8gd2gvx43mWhv9NtSikl/2V+eYd1cjugad+2bHEm\nvymeCd/xNmGdtMwHkU8guLhxyy48cxbnN5vhg/zR8IbP2iEwCzurMpsXcHuL\nE+55YSTCRxC+82vp690zgLAQUejHdmYDI3pe/Z+ACDdpTu25WbiLU2NVFkOO\n5bXk\r\n=21b3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBeapIilNXrGc/IF3948i1Xk374aapBR1ym26HzyeGsoAiEA9l+FtcAWqqtDNKIMpZLvuaZDfZaJmViEL3QxFEcQ6os="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.5_1592585896412_0.2505730702603661"},"_hasShrinkwrap":false},"1.5.9":{"name":"react-query","version":"1.5.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"release":{},"gitHead":"1fc7ed08d18a5fbcc0c4c84525db5d02ff1cada2","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.9","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-RrCSSRBkFZe+AAhGFuMDvaucMIANWEbDeuVbn/bWPXuYCNYKz2HD4v7uN1FYAArFjv3i8E0PoR8ll3dBjhrObg==","shasum":"8df202a338c1875a033cc6a29d1b7f777b233237","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.9.tgz","fileCount":18,"unpackedSize":621494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7SQ6CRA9TVsSAnZWagAA/wUP/jPdVyzCzrAShYM7VX4e\nJUBeBfUz21079C1ePgbUqPF6KXz7dpJZ4qo2450WkI6Fo5xF/8bLr9h0NrI0\nKslL5pdQT30qwcZYTfQz31+uk7CIyLQuRgo17doeo8+2eGfvknonaccaneZ8\nAK+NMhZPEeT2YlRIwbSNP+65iYzdRZP7c0BI9OmL0egmE/YyN5ODBbLcgF/8\nOAaNfwMtZVSvttxFmwuVG8a+IKTZA3rfJ6Q2Y3d9XQ6SeiPqUtyGw97Dv1DR\nZ0OcTcKoLRZvQFh1J8OGZvBlEI78LClkkMiN5133Y1qJB4Jw44hBYg0XuarK\nlB+bWQs4UePh1/8oiuoPnMtH811QOD2OZh1piGD8ZbD4gCZn8jFVH4eTkf+A\ny/Sm3PtzZLzzwyk80O7C9UeKQasyWoiGfkxUb6cWs4b9CYGOEv8IPHMqGhN6\n7mxaNaK/dIGP7lJXnJKU8zGnvcKN35KyGgCdPp+Q/HsJlMUkNUiPD6hzheRq\n+Qnijf2G6OAzBQVzvKN0d4PhGnU37uJ5HEYxS9ePdJIPHc+bm6JmON/CDIOw\nqoOgyNrcNNI2bjWXvzvpWXcOqRL5M7UFL5+VwVncHF6qNil+Jgcr83A22hY5\nwSng+dRzDIAiTf8QpFzsPCS6Z32f4PgERDkrYc0Tq/YdJPpr4e2MQp8UWveS\nMstP\r\n=cIrL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8EhMYpJ1vOiMLSR7hAUJLJErwoRasMo/8AFjHbYVhFQIhAMNeEUafoeWa6ZkOeNDl7mILvdgliAKjNJ6freR9gSMJ"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.9_1592599609381_0.23415025581665083"},"_hasShrinkwrap":false},"2.0.0-next.6":{"name":"react-query","version":"2.0.0-next.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"5291ed7a0e6f4ca297da7403647877670f4546d3","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.6","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-BpAWHnWyUfLGCFcmodS/stLBmIK4xXXxourf81ChvJv3Gaj9hBc4LAL+aK0VH3NOZg5+DhPc5WhZ/Vme4E9i/A==","shasum":"9d4c63c2964f9276092c775e124d2fb0aec7f157","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.6.tgz","fileCount":17,"unpackedSize":602648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8QTTCRA9TVsSAnZWagAAgLsP/1h8HsI6U3IGqr8OaAO4\nqEEhwhZg44+a8U+UckRHoKxAkIgRHdOt9GWQc45/6sR0Pq02llx9T4t/uCao\nOKa1dvdgI7znlLhseRXoVT0GGcGVqec6FWaFhslFY9DZuGrulfFQY1084azv\nawGJaF0+Sl3Rorp1VvfYZclR8cXvRI35/C7xcpprJBr+i04cf/xDEcUrzMQY\ngn+5u5yaG1K1Ss6A5Ro2kMXUIDCtom6cfFTYYAXO6jCX3fTsDwYHeSJLPJTn\nDh3JwGEBIy36f4QNC5x1b/fJ40N8NiV9/mA6xVZ/7LuQrxVKfvhh6Hdphy4a\n7JtYJU5XNkhwazWYdUCrzeLCxF6jVpdJWXX90iQSyXXIe1XgQnOhmMT98Hpf\n4XJqYE/T3LJ79XF37EsjdpUn6CZEimd72eN9oiRe1+uLMg1xys08B1coeFMy\nquVogLAulFwMG4vlzW78/jjwZPuAlunRx8dF+qhDCFpFh1vMTHK1wLtZVTzo\ndW9upkC3AalvvaGBfjI7G4iZufuA+CAEWnJ2kBat0nIaS4heVag9CkaLpek1\n2RhjNra+olpyW7OpkFiZekDGefUeYQsReaJqUGdc1EhIWP0glYrgY6NGLYjQ\nyg4cFC8dXcXgVYKnQDmIs5bSc9G0gmrPMgNnbQo1jUGTl7+Q6mj7tHRT7tnc\nmQGb\r\n=2623\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWsYp3O+R5m6Uv07Q2pO24hDt46k+gkF3SUcJNI0pb4AIhALcVrzvXQTydJjaL5iWQuE0wzogyX1KOmI3qGDuDi5Xw"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.6_1592853714622_0.6466637215184379"},"_hasShrinkwrap":false},"2.0.0-next.7":{"name":"react-query","version":"2.0.0-next.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"007b9b47b05372406403f8e3902bc66ee03a66f3","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.7","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-SaBiKjJrYTlO0mBXISMBLf8DOqiGazNvXUsv0O7AxpzpVBZFfoIRa/D+XzngpQE+B/hHkfLnCUcPuAd4R88cJw==","shasum":"db93b1054cf96b271ab4a4a3645c5b7404460279","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.7.tgz","fileCount":17,"unpackedSize":604344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8RFbCRA9TVsSAnZWagAARSMP/0DXrsPN8tnZNmaOvJhX\n/+KdSUjkKZXjtSw8K7QYnVFs3xIQjkxcRq77dnfSuZASBdx8nyV8XaQh+0SC\nNxiNOJbr5lF5fT3wWy0i1VDo88yAoHEmWHOMpcQPT0mDbWCYACSyb4BpPRhb\nHUNlpzTBoQmQcy2ld1A7TVRweibf0XSce32mNNPekeoufoGrgfJtYac2epfm\nv3sCxNlmPIHndO5Ke4dw9mAQr5JksOGmgnkFDPy4N8fVVsUIpMBXsQyK9olb\noXpSVaAwoy5aVJNTmIO+iBYFRZIPx8hSfo90BT7KW78Tk1PpGvjuP34VsmBE\n4+Di/uOEB8IxydMzN6k4QQOT/zupCf9r6Mo/UGuDH2OunxvZU0whLJmF9guY\nyde8GXNR4As2GcMuHdl5wW3l1sxzOP23/zaoSBk/Cwppgdj7jMEe3ScqQ5hM\no15m6Ga4dzkK46eFVI+b5FsglkPDVAtftFcPoOFqxKj2EwBMiaLPZ2DnbNJx\nzsGamxypODHXSXgGCB9Upfgu/NpXDi35+GFr6o1TzqsfWnk7298hzc20YbiN\nsDrP6CcT+nG8IIX9Pe8v7KGosWYeG4O4O9rkVsUGvVvaEavdbKNKn1DwzzPF\nBXlyMdneCummTgXOm7Wm+E9K9jYZ+EOneb47DyIIoFiSMfIGzcZi1CHwePJK\nQ2wO\r\n=BFdp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqzg5FJ7zufocs+xPj1w4EsjNfiForH1eAe9DwRL7vtAiA7J4my0Urjsah3JpIILf8i9XUC8n8Xpcz/L1Bl13eAjQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.7_1592856922556_0.6563937315241133"},"_hasShrinkwrap":false},"2.0.0-next.8":{"name":"react-query","version":"2.0.0-next.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n<details>\n<summary>Core Issues and Solution</summary>\n\n## The Challenge\n\nTools for managing \"global state\" are plentiful these days, but most of these tools:\n\n- Mistake **server cache state** for **global state**\n- Force you to manage async data in a synchronous way\n- Duplicate unnecessary network operations\n- Use naive or over-engineered caching strategies\n- Are too basic to handle large-scale apps or\n- Are too complex or built for highly-opinionated systems like Redux, GraphQL, [insert proprietary tools], etc.\n- Do not provide tools for server mutations\n- Either do not provide easy access to the cache or do, but expose overpowered foot-gun APIs to the developer\n\n## The Solution\n\nReact Query exports a set of hooks that address these issues. Out of the box, React Query:\n\n- Separates your **server cache state** from your **global state**\n- Provides async aware APIs for reading and updating server state/cache\n- Dedupes both async and sync requests to async resources\n- Automatically caches data, invalidates and refetches stale data, and manages garbage collection of unused data\n- Scales easily as your application grows\n- Is based solely on Promises, making it highly unopinionated and interoperable with any data fetching strategy including REST, GraphQL and other transactional APIs\n- Provides an integrated promise-based mutation API\n- Opt-in Manual or Advance cache management\n\n</details>\n\n<details>\n<summary>Inspiration & Hat-Tipping</summary>\n<br />\nA big thanks to both [Draqula](https://github.com/vadimdemedes/draqula) for inspiring a lot of React Query's original API and documentation and also [Vercel's SWR](https://github.com/zeit/swr) and its creators for inspiring even further customizations and examples. You all rock!\n\n</details>\n\n<details>\n<summary>How is this different from Vercel's SWR?</summary>\n<br />\n\n[Vercel's SWR](https://github.com/vercel/swr) is a great library, and is very similar in spirit and implementation to React Query with a few notable differences:\n\n- Automatic Cache Garbage Collection - React Query handles automatic cache purging for inactive queries and garbage collection. This can mean a much smaller memory footprint for apps that consume a lot of data or data that is changing often in a single session\n- `useMutation` - A dedicated hook for handling generic lifecycles around triggering mutations and handling their side-effects in applications. SWR does not ship with anything similar, and you may find yourself reimplementing most if not all of `useMutation`'s functionality in user-land. With this hook, you can extend the lifecycle of your mutations to reliably handle successful refetching strategies, failure rollbacks and error handling.\n- Prefetching - React Query ships with 1st class prefetching utilities which not only come in handy with non-suspenseful apps but also make fetch-as-you-render patterns possible with React Query. SWR does not come with similar utilities and relies on `<link rel='preload'>` and/or manually fetching and updating the query cache\n- Query cancellation integration is baked into React Query. You can easily use this to wire up request cancellation in most popular fetching libraries, including but not limited to fetch and axios.\n- Query Key Generation - React Query uses query key generation, query variables, and implicit query grouping. The query key and variables that are passed to a query are less URL/Query-based by nature and much more flexible. All items supplied to the query key array are used to compute the unique key for a query (using a stable and deterministic sorting/hashing implementation). This means you can spend less time thinking about precise key matching, but more importantly, allows you to use partial query-key matching when refetching, updating, or removing queries in mass eg. you can refetch every query that starts with a `todos` in its key, regardless of variables, or you can target specific queries with (or without) variables, and even use functional filtering to select queries in most places. This architecture is much more robust and forgiving especially for larger apps.\n\n</details>\n\n## Videos and Tutorials\n\n- [\"React Query: It’s Time to Break up with your Global State!\" @ React Summit 2020](https://youtu.be/seU46c6Jz7E)\n\n## Used By\n\n- [Google](https://google.com)\n- [Walmart](https://walmart.com)\n- [PayPal](https://paypal.com)\n- [Amazon](https://amazon.com)\n- [Microsoft](https://microsoft.com)\n- [Target](https://target.com)\n- [CarFAX](https://carfax.com)\n- [HP](https://hp.com)\n- [Major League Baseball Association](https://www.mlb.com)\n- [Volvo](https://www.volvocars.com)\n- [Ocado](https://ocado.com)\n- [UPC.ch](https://upc.ch)\n- [EFI.com](https://efi.com)\n- [ReactBricks](https://www.reactbricks.com/)\n- [Nozzle.io](https://nozzle.io)\n\n> _These analytics are made available via the awesome [Scarf](https://www.npmjs.com/package/@scarf/scarf) package analytics library_\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/rick-morty) - [Source](./examples/rick-morty)\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep projects like this afloat. If you would like to get premium support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n[![Diamond Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/diamond.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Gold Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/gold.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Get Your Logo Here!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Silver Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/silver.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://www.reactbricks.com/\" target=\"_blank\">\n          <img width='225' src=\"https://www.reactbricks.com/reactbricks_vertical.svg\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Bronze Sponsors](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/bronze.png)](https://github.com/sponsors/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='150' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n[![Supporters](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/supporters.png)](https://github.com/sponsors/tannerlinsley)\n\n- <a href=\"https://github.com/bgazzera\">@bgazzera<a></li>\n- <a href=\"https://kentcdodds.com/\"> Kent C. Dodds (kentcdodds.com)</a></li>\n\n[![Fans](https://raw.githubusercontent.com/tannerlinsley/files/master/sponsorships/fans.png)](https://github.com/sponsors/tannerlinsley)\n\n- Steven Miyakawa (@SamSamskies)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Paralle Queries](#paralle-queries)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Disabling or Pausing a Query](#disabling-or-pausing-a-query)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Manually Priming a Query](#manually-priming-a-query)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidating and Refetching Queries](#invalidating-and-refetching-queries)\n  - [Query Matching with `invalidateQueries`](#query-matching-with-invalidatequeries)\n  - [Using Mutations to Invalidate Queries](#using-mutations-to-invalidate-queries)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Super-duper Advanced)](#custom-query-key-serializers-super-duper-advanced)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.invalidateQueries`](#querycacheinvalidatequeries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ (via `useQuery` and similar hooks) will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { isLoading, isError, data, error } = useQuery('todos', fetchTodoList)\n\n  if (isLoading) {\n    return <span>Loading...</span>\n  }\n\n  if (isError) {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\nIf booleans aren't your thing, you can also use the `status` string to do the same:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you based on query keys. Query keys can be as simple as a string, or as complex as an array or nested object of values. As long as the key is serializable, and **unique to the query's data**, you can use it!\n\nIf you're learning React Query still, we suggest starting with using **strings** and **arrays with strings/numbers**, then working your way up to using more complex query keys.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const queryInfo = useQuery(['todos', { status, page }], fetchTodoList)\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const queryInfo = useQuery(['todo', todoId, { preview }], fetchTodoById)\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, queryFn, config]` signature is supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  config: {},\n})\n```\n\n## Paralle Queries\n\nReact Query is built to require **no extra effort** for making parallel queries. You don't need to do anything special! Just use React Query's hooks and handle all of the loading states and you're good to go!\n\n## Dependent Queries\n\nDependent (or serial) queries are queries that depend on previous ones to finish before they can execute. To do this, use the `enabled` option to tell a query when it is ready to turn on:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { isIdle, data: projects } = useQuery(\n  ['projects', user.id],\n  getProjectsByUser,\n  {\n    // `user` would be `null` at first (falsy),\n    // so the query will not execute until the user exists\n    enabled: user,\n  }\n)\n\n// isIdle will be `true` until `enabled` is true and the query begins to fetch. It will then go to the `isLoading` stage and hopefully the `isSuccess` stage :)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy (popularized by [HTTP RFC 5861](https://tools.ietf.org/html/rfc5861)) and a very robust query deduping strategy to always ensure a query's data is always readily available, only cached when it's needed, even if that query is used multiple times across your application and updated in the background when possible.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    isLoading,\n    isError,\n    error,\n    resolvedData,\n    latestData,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {isLoading ? (\n        <div>Loading...</div>\n      ) : isError ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n### What if I want to infinitely load more data in reverse?\n\nSometimes you may not want to **append** infintely loaded data, but instead **prepend** it. If this is case, you can use `fetchMore`'s `previous` option, eg.\n\n```js\nfetchMore(previousPageVariables, { previous: true })\n```\n\nThis will ensure the new data is prepended to the data array instead of appended.\n\n## Scroll Restoration\n\nOut of the bx, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes)o and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Disabling or Pausing a Query\n\nIf you ever want to disable a query from automatically running, you can use the `enabled = false` option.\n\nWhen `enabled` is `false`:\n\n- If the query has cached data\n  - The query will initialized in the `status === 'success' or`isSuccess === true` state.\n- If the query does not have cached data\n  - The query will start in the `status === 'idle'` or `isIdle === true` state.\n- The query will not automatically fetch on mount.\n- The query will not automatically refetch in the background due to rerenders or new instances appearing.\n\n```js\nfunction Todos() {\n  const {\n    isIdle,\n    isLoading,\n    isError,\n    data,\n    error,\n    refetch,\n    isFetching,\n  } = useQuery('todos', fetchTodoList, {\n    enabled: false,\n  })\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {isIdle ? (\n        'Not ready...'\n      ) : isLoading ? (\n        <span>Loading...</span>\n      ) : isError ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        <>\n          <ul>\n            {data.map(todo => (\n              <li key={todo.id}>{todo.title}</li>\n            ))}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the query function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst queryInfo = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  queries: {\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nIf a prefetched query is rendered after the `staleTime` for a prefetched query, it will still render, but will be automatically refetched in the background! Cool right?!\n\n## Manually Priming a Query\n\nAlternatively, if you already have the data for your query synchronously available, you don't need to prefetch it. You can just use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData('todos', todos)\n```\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `false` instead of `true`\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- If you import and use the global `queryCache` directly, queries are not cached during SSR to avoid leaking sensitive information between requests.\n- If you create a `queryCache` manually with `makeQueryCache`, queries will be cached during SSR. Make sure you create a separate cache per request to avoid leaking data.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst queryInfo = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\n> NOTE: Suspense mode for React Query is experimental, same as Suspense for data fetchign itself. These APIs WILL change and should not be used in production unless you lock both your React and React Query versions to patch-level versions that are compatible with each other.\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nJust as with `useQuery` you can also use booleans if you'd like:\n\n```js\nconst [\n  mutate,\n  { isIdle, isLoading, isError, isSuccess, data, error },\n] = useMutation(pingMutation)\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `invalidateQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidating and Refetching Queries\n\nWaiting for queries to become stale before they are fetched again doesn't always work, especially when you know for a fact that a query needs to get refetched. For that purpose, the `queryCache` has an `invalidateQueries` method that lets you manually mark queries as stale and potentially refetch them too!\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n```\n\n> Note: Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query gives you the tools to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **invalidation, background-refetching and ultimately atomic updates**.\n\nWhen a query is invalidated with `invalidateQueries`, two things happen:\n\n- It is marked as stale, regardless of its `staleTime` configuration\n- If the query is active (rendered via `useQuery` and friends), it will also be refetched in the background\n\n## Query Matching with `invalidateQueries`\n\nWhen using APIs like `invalidateQueries` and `removeQueries` (and others that support partial query matching), you can match multiple queries by their prefix, or get really specific and match an exact query.\n\nIn this example, we can use the `todos` prefix to invalidate any queries that start with `todos` in their query key:\n\n```js\nimport { queryCache, useQuery } from 'react-query'\n\nqueryCache.invalidateQueries('todos')\n\n// Both queries below will be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\n```\n\nYou can even invalidate queries with specific variables by passing a more specific query key to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries(['todos', { type: 'done' }])\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `invalidateQueries` API is very flexible, so even if you want to **only** invalidate `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `invalidateQueries` method:\n\n```js\nqueryCache.invalidateQueries('todos', { exact: true })\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `invalidateQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to invalidate that query:\n\n```js\nqueryCache.invalidateQueries(\n  query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n)\n\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be invalidated\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be invalidated\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\n## Using Mutations to Invalidate Queries\n\nInvalidating queries is only half the battle. Knowing **when** to invalidate them is the other half. Usually when a mutation in your app succeeds, it's VERY likely that there are related queries in your application that need to be invalidated and possibly refetched to account for the new changes from your mutation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get invalidated and possibly refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `invalidateQueries` function:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, invalidate any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.invalidateQueries('todos')\n    queryCache.invalidateQueries('reminders')\n  },\n})\n```\n\nYou can wire up your invalidations to happen using any of the following side-effect callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: () => {\n    // An error happened!\n  },\n  onSuccess: () => {\n    // Boom baby!\n  },\n  onSettled: () => {\n    // Error or success... doesn't matter!\n  },\n})\n```\n\nThe promise returned by `mutate()` can be helpful as well for performing more granualar control flow in your app, and if you prefer that that promise only resolves **after** the `onSuccess` or `onSettled` callbacks, you can return a promise in either!:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: async () => {\n    console.log(\"I'm first!\")\n  }),\n  onSettled: async () => {\n    console.log(\"I'm second!\")\n  })\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log(\"I'm third!\")\n  } catch {}\n}\n```\n\nYou might find that you want to **add additional side-effects** to some of the `useMutation` lifecycle at the time of calling `mutate`. To do that, you can provide any of the same callback options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired after the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired after the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired after the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.invalidateQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { queries: { refetchOnWindowFocus: false } }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Super-duper Advanced)\n\n> **WARNING:** This is a very advanced feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  isIdle,\n  isLoading,\n  isSuccess,\n  isError,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, queryFn, {\n  suspense,\n  queryKeySerializerFn,\n  enabled,\n  retry,\n  retryDelay,\n  staleTime,\n  cacheTime,\n  refetchOnWindowFocus,\n  refetchInterval,\n  queryFnParamsFilter,\n  refetchOnMount,\n  isDataEqual,\n  onError,\n  onSuccess,\n  onSettled,\n  useErrorBoundary,\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  config,\n})\n```\n\n### Options\n\n- `queryKey: String | [String, ...any] | falsy`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, ...any]` array is passed, each item will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - The query will automatically update when this key changes (as long as `enabled` is not set to `false`).\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n  - Must return a promise that will either resolves data or throws an error.\n- `enabled: Boolean`\n  - Set this to `false` to disable this query from automatically running.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `idle` if the query is idle. This only happens if a query is initialized with `enabled: false` and no inital data is available.\n    - `loading` if the query is in a \"hard\" loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `isIdle: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isLoading: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isSuccess: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `isError: Boolean`\n  - A derived boolean from the `status` variable above, provided for convenience.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  data = undefined,\n  resolvedData,\n  latestData,\n  ...queryInfo\n} = usePaginatedQuery(queryKey, queryFn, options)\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options)\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `data: undefined`\n  - The standard `data` property is not used for paginated queries and is replaced by the `resolvedData` and `latestData` options below.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) // => Promise\n\nconst {\n  isFetchingMore,\n  fetchMore,\n  canFetchMore,\n  ...queryInfo\n} = useInfiniteQuery(queryKey, queryFn, {\n  ...queryOptions,\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n})\n```\n\n### Options\n\nThe options for `usePaginatedQuery` are identical to the [`useQuery` hook](#options) with the addition of the following:\n\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n\n### Returns\n\nThe returned properties for `usePaginatedQuery` are identical to the [`useQuery` hook](#options), with the addition of the following:\n\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [\n  mutate,\n  { status, isIdle, isLoading, isSuccess, isError, data, error, reset },\n] = useMutation(mutationFn, {\n  onMutate,\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **after** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`invalidateQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or rendered with `useQuery` and friends.\n\n- If either:\n  - The query does not exist or\n  - The query exists but the data is stale\n    - The queryFn will be called, the data resolved, the cache populated and the data returned via promise.\n- If you want to force the query to prefetch regardless of the data being stale, you can pass the `force: true` option in the options object\n- If the query exists, and the data is NOT stale, the existing data in the cache will be returned via promise\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config)\n```\n\nTo pass options like `force` or `throwOnError`, use the fourth options object:\n\n```js\nconst data = await queryCache.prefetchQuery(queryKey, queryFn, config, {\n  force: true,\n  throwOnError: true,\n})\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of the last options object:\n\n- `force: Boolean`\n  - Set this `true` if you want `prefetchQuery` to fetch the data even if the data exists and is NOT stale.\n- `throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater, config)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n- `config: object`\n  - The standard query config object use in [`useQuery`](#usequery)\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.invalidateQueries`\n\nThe `invalidateQueries` method can be used to invalidate and refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, all matching queries are immediately marked as stale and active queries are refetched in the background. If you don't want active queries to refetch, and simply be marked as stale, you can use the `refetchActive: false` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.invalidateQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  refetchActive,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `refetchActive: Boolean`\n  - Defaults to `true`\n  - When set to `false`, queries that match the refetch predicate and are actively being rendered via `useQuery` and friends will NOT be refetched in the background, and only marked as stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  shared: {\n    suspense: false,\n    queryKeySerializerFn: defaultQueryKeySerializerFn,\n  },\n  queries: {\n    ...shared,\n    enabled: true,\n    retry: 3,\n    retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n    staleTime: 0,\n    cacheTime: 5 * 60 * 1000,\n    refetchOnWindowFocus: true,\n    refetchInterval: false,\n    queryFnParamsFilter: identity,\n    refetchOnMount: true,\n    isDataEqual: deepEqual,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n  mutations: {\n    ...shared,\n    throwOnError: false,\n    onMutate: noop,\n    onError: noop,\n    onSuccess: noop,\n    onSettled: noop,\n    useErrorBoundary: false, // falls back to suspense\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"887598c3f24d4ba521f9dacff2239ef1e6ec109b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.0-next.8","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-7FEdiC9SlSMC0+Bhs3f3vjiOLsmTUdvAfDE2nCsmGAE/u3lmoRUYTCmHRQ9t7u3HBzGb+IsLfdSC+ItX3x6FNQ==","shasum":"36d804aa24c8e4310f2ac2969390e7180c5a7676","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.0-next.8.tgz","fileCount":17,"unpackedSize":604669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8RIyCRA9TVsSAnZWagAAM7IP/jLy/dSmSXRyeiQd5bfQ\n5rl/ssuqCn8vBgsZJFmpjSh9N+ubhwuO/5CsmrXt5Fn9GhW5Li+51ClAdHoR\npRcxAB4yltPuvvjQJWVkzkqJoov5q1rxbn8qUkNwLpmLEObN4rd6V2HRCIpF\nc5yhfRtjOwA2N4CSjVyBhyPuogzLuXyGeyRBM7R1Zc1lyDY3r9MrRpqSd1wZ\n+gWvAVUOkInNZkzDk2stdzCh7vvHzVA/XPWtX2P91i8/5FktRqW9cgFBv6zV\n8M/2eCue1OAxRWwdSs9fg3mBbvjGUxhiBLdFU+cThs/Lv7jRbqkr77Ff+1iF\nbAJkaP4UBZ42TAt/JPicmGAR8l/Hg7n8yocZfrZlAqvvr/i3izQOpvmtusPa\nyOVNEbpl4ldNobv+7uup0ODplFuA3yGDLnraxz2X0AXKD1DrqmymOTUY5s47\nvPiNZOLx37QjP0/4rmTXXjk3NwxKJBx4ikNXFT+ZfmG3vslJF9JcIyU8ZaYN\nEcVTCkxS58WLisrlSXi5rNFoJ17kK0eiTU59HpqjKG0TcQa1o7LOzXhuhOha\nTyqKd42Vckj1mDvYHjkQ4NwwF957Cm6Sycl9r1SKLIMX5MtQ0/odRLGYCXAd\nPkA+0XxmLYt+G1bQQFN3MT1TFvoOr7mCfyZJjqmlFD2YWD9kyouiAfUkTcbU\nEIqq\r\n=d3cI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7actva2JwqPFeLdDPsMylB+96h7g2yI4YpmFNP9NXBAiA7kYiAFOvo9QwkQXyw/7nofBf8Je2RSGiKwSvyOwB9gA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.0-next.8_1592857138159_0.38939198381142215"},"_hasShrinkwrap":false},"2.0.1":{"name":"react-query","version":"2.0.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"8eec19ac65f0bfe382d8680234769132814e1af5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-RxWBrhk6cNPmLdAwar78HjKdmCPNyQNTZmBIl5bxsPZtvp0d+GbBaYGXKUP5GE/XZ/AGkSB0YTFlkyBsxYTTow==","shasum":"6153560b35136327752b8827c791699232a20172","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.1.tgz","fileCount":17,"unpackedSize":604684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8SrHCRA9TVsSAnZWagAA/Y8QAKQH9jp54ybhx+oKG2Yn\nBWuOcTQBNWJyPAWNS5lsZPxWpExSFTRbSexMJnPvs7ypjN0PkERRNMXRsLEG\noL+aIab5g6jzdN4yZj4dP3wGtMamIu+zMeDGqoFTH6ywrldpi7+r+LrLlefq\nl0f/Z05dkISFIjpC+aYTJ/CogMuwhAzPUF9I0ZHloBPSj57dr5U6koKdfOjV\ntNSa9vIUEWQwCNxwnFpokequWBKpP7AU4v/swlBc6F6R8t3bYVWVhppr6LpP\nKYY335dmlAowctKUL5llS5wnvB7rOTcjbZFO4aU+UN4cLeU1Xl1s12b2G8ex\njVzDboQpxKlagl2iTUHy7yWdKp2Mbxh91D2Ns2+va9aCqg6rmMLwiXgOGWew\nodDmVMqnqRS7if0W8iNFFGrmjbgYjn5pQMXZX/1/1mBkVfMHf4rp3XwKamKC\nL54f6vQgMLIwOXf/mfZewWy0G6+lPoyXF+QMpr+zpiTypH0ko/Y0x3H4znIp\nbABHd0wg5+SzQRqnTEmXx+it2O7tioz0ajGZ+CXoV9J1Airuimp2Tu0g7m7X\njbABFx49mJgc0DTqALW53rmcFhR6RqAqSLpxDNFPYhNJolRG/ImHI/ruW//5\nGzH/xEeecy+jXMuQELgxJdJCmtSCguV79fd3iecaMtcai3uQxO+hLHdzDHHw\nZ6Sh\r\n=K09Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICf5Z29mB9+IvwvYvdOECVdLHNFuF8Q0VO7tUUv8nK92AiAI5BRo8NtuXpZCZWXUACy5MnY8DIuYsfay9oeHD1q/3Q=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.1_1592863430742_0.5754151538740382"},"_hasShrinkwrap":false},"2.0.2":{"name":"react-query","version":"2.0.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"9c618f37d5d2cb0dad7d0fdc210b16c032ab127d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.2","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-AvVA7+1SK+TFiu5KcRoEFKC2cCWIlnIDXIWuqcboIH3JSh56UXxl0WDS1x5TqBvNkpu6oIT+IFjT8voj3dGojg==","shasum":"6fd9b4dfb4a1c06364f840e7ed53050af395a2d8","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.2.tgz","fileCount":17,"unpackedSize":605428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8ULZCRA9TVsSAnZWagAA4G0P/jJvC6aADwuRfolUbuFX\nOzkzIipRxeaAo7I8EC9dfHXaefWrwYPanqrEHwbueZnvSV9djhNRN8hxngI3\nkuRRYQecHWCho43eDKUv/SsujoGWJ86Hcc5Es+TZ0hh6bO3aHmVO84Wp3UVw\nX0LpK4zAmJ96aMwbj3GnvOw954lRF6DfWKfKWt0LrFbZZ8bUEm2bqSOrDSR2\noHHakKmWF01Ka9aJy52vQmylN1rXeA8P1lnRfrkrSvez1/99CqYpZmqai581\nQ3VjY91ADTK2cbOVrmzlWq+sfnEG/DrgEgmyGydLLg5ydAFryA+6dPKsG0jz\nIkePxFgyqe0juYT9Ezu+AmcxDZiof7+3rrTDwG7rZ1dZoWkGu72ragzZQzKn\nYMkQy7zvMMH/67mt56vUQBLOChWL5ek6BvTBVCDv+H9NfUaJMnHfNuOazs1G\n0eWJ3N9axsbCTKANA4Sz1aiyJbQo2Hudti9In+nToWOrJiv6Lb1rTIVoFz5u\nYC/WHAxRltSwcomPTuR5oPASKmajkiHyyaJ0ZU3yNTfOdHKQA0Rpv/sF7wIh\nWb6yY/ufFL8EwnlQQXXz50INfuVC4ikBl3HvTHxIvtKgX0YRrTFC+ax/0jcj\ncgxxazLlRc2IAOt82nUL3D6vsTWj+0744e3rpQxHwq29xrkMdO/M+MFSyt9I\nTvMX\r\n=RHoZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCewaE2KPCp+FKjBNeYwd7K+8ISWqB2DRpstdoKpXeeJAIhAIPQnnq14kkEFF6Ar8kgFPJOyMKCP5ARt6q+GpN6vHHY"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.2_1592869593066_0.17362525439898202"},"_hasShrinkwrap":false},"2.0.3":{"name":"react-query","version":"2.0.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"ebbf1a849b4ccbc8beae2d3afa08ca1a7a3b1218","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.3","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-ZiVBa83c2JY0DWcQPO8QGlUkQuAnwM3hh2aQnxP2m/GnrTtDcE+LYezUNqJKH31IUtIS2mtHrOwQAQBKhYgPCQ==","shasum":"70bd216fe342cf61a976f14520bf0fbd1151484f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.3.tgz","fileCount":17,"unpackedSize":604426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8WMjCRA9TVsSAnZWagAAFWMP/3qRwobUHtXB/QHX2JgC\nwrzM+QSpqa9dh1WzZwTSQxnhamCKFA9fu2gKd65Mvhc9cr1p/a5nQ1NgCa7H\nwac032vXMz3aUnQSRWUjqyJoiRK81EMA5tqOXSVronb/Ep4zKnKq/le0CG62\no5JfeD0ZeksDMJXJj/K8xS/juLoBgMZy5MkdN19oNEokEz/T1cCmNTL2TlR7\n4KB71Mt6CT2YskrgWbBsb2yWh53tRGIndd7FE2GZgsBfCirvskvJmUT4C2My\nXunivroFf5REIUMypi/Mh14ag+tgXigx9ReH+M+5xRFq57zz3Mpy/fveXwYJ\nJXz75cIVmQAq+yAVyOQ7UPbE4BcAuRZ7cM8VS6a2P3qNP1eN7OFaGwBE+zW7\nB36HBRd+ObSO+u+Eroj9maEu0h+4a/e3knFQukg7M8hv2ioE0v9cPap0lyVd\niFEhl5CUliSRiB8M2b6QwlzGDsIKai2MBD8UQkzYN7bPpw/4ezpg6cx8Ab+i\nHAah7btYvgBX2MokZ4NRybOE7YsmRCKQbXUd+GtLx9oXSZsU23n5FYDqEa7F\n4aJI4XY0TPNoFxXhQutcOrcEgvF0AnODi3cddeit9cpnwdfHljrnVazz5Njo\nq65zkb86RDmtl6MSRWWuhQCIMxLKbWLxa2qNYnDdWiKJ5miFjHaU8sxHKMfc\nPUsi\r\n=kEe7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqkfzhSudCIZ0f+EMtvouqpcbngGyEZYw6W8BwdATsQwIgMKhoZo6pIQ/93exm0i9CszmZbibGexGxqIMj/Csjet8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.3_1592877859097_0.37651153401380366"},"_hasShrinkwrap":false},"2.0.4":{"name":"react-query","version":"2.0.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"8519dd4d6d2c72b6654367620fb89517a6181c7b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.0.4","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6+hYuRWvPQlFrzoJgT5ZmlCoSxv3LqpiDXaSzbcAtwsEtcUFWz5DKL6L8EpYoreJS2INAQONEYHtXCt1tT4HlQ==","shasum":"dcae7518efa4bdd31410e92ccd4f396d7398dfdc","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.0.4.tgz","fileCount":17,"unpackedSize":605503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe84JqCRA9TVsSAnZWagAAlZkP/3YgQMymc6c1des8FZ8t\nLwI9PVEEfYx3I9+/uZLoUlwMaU4cMdfDP1hLXxvN3T1n+3ELqsJ9u9jEf1MV\nl6wKyrlVvo2Bf6ajttOLksqakZKiWYXWT8pqb8G2uF3BCOw1iSWaljZxtnCQ\nUa/PNLI+YTXict5EtD2Z+bYzPOP33YQYtpdR7AsbfqVkfIq507aEL056R9yN\nQHebesWohpmHb9RpCqN76j+kaKOVQN8yW5Dph7bpJGIuztmyjcIvmDVJf2EG\nOYaT5dK3PIBiPNN9YVQQdqtn1kaqjwqa/EVtGmbzQZT30ejAu80HNyZsaIbM\n13XEp5sos1F/tKOB8NpjS1snmP1Y23QiVT9M6L3l0ar42B53U+YbVg7U31jw\nTCXweSZcQjQcJDl/cgpk2fL6MDitLjaZ3rfcVxToIu0+WVCrW2kPjDbZI2ER\nT+IooTY+xB2RkCtfvPw36JmAE1jEoX9YARqUTsSVrGrBBo1eGiJbEWChsk5g\nAyy5y8vHQLEsi6O5Ds/tJXkSkrRwokllMJDvMnA4bWuXRaGAc7jh2nGNqYG1\nhk8TQeM66SMzwmiG3oKQmFJVe+cYrPkilzgrntpuyZWg7eYKg1bvhdzxGgOD\nbNNTjrMeoJ62H+eC/HI/duaewtu0fPRf0X3glUg82XRjs1Q19ijzlX2J50kT\nIHVt\r\n=pMnP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDox56y5Jp6k4nAmh2Gk8Xy9Yee9DfF+/K4ns9jHhMBwwIhAP62j6otYeiBlWdz24fY4kIz/sveua3k/WzEBIuLv4K9"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.0.4_1593016938053_0.7459048150985557"},"_hasShrinkwrap":false},"2.1.0":{"name":"react-query","version":"2.1.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"4c741f74994a3d8f87f229e4fb313736616600a0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.1.0","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-vY1iS12IhLIspcjkJEwgw0w7GxObnMHtqAKK2b/JvnmnuE/ktAZ8aRjvBGF1rEq5xqUqn7B1YNIX8IIKMwvuog==","shasum":"b470f6ef4234d1c5acfa85babe38639388485438","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.1.0.tgz","fileCount":17,"unpackedSize":606445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe85HrCRA9TVsSAnZWagAAbvcP/RkET2KWuXrJMeIi85q3\nkoynqY2PEgNBknyxUUk26QFRgAxpRIJlEkeEnVFYe4PefRfMpj5vWLMUL5rL\njBg7Z7VmPwpGxhKszCyYjFeck8d4AJZ9OPDFeBSlB6HXljMhBCwhkdB3c5sk\ntGSBReBEHQdA/PSgQQfNC/oUTXKy7dceXVa1vIoKs+kDWOyu7HX0HjXCOVU3\nNAkC9afyJof0WaZn7JwulCGkqALz6uehZy2951VlJYpdHO1TV29khHcPvXBf\nXW+c9bN92niw6zoqC+5xbQs+5FN6CqoflK/YzneVtY7rQ6WDyZpel03T4l6g\n577aQ3NRbzBkTXzbw/uMfw1ir5yBcCYXo4av9xQvx3hGspOc2QrczZLESZbz\nXl429dQ4PcAzpFY7cAYbDxe4wFox0endnMAJJ+BKISClkwNGilOCLXRormJj\nw/VF0TZar4DsZZFkXR1k31CbFBKoMBwgQXE4TUDje9Ubn0A9QSbhA3NrPupa\n2y/tcSl71USI4LzT8pGwRMU/J1ytplKNM/ZOK8wm0rL+5yVKwloF98NE2KsD\nw70QMzFBJYKBRJD8pKStcosxpDIWCkFsHEw7Ym0cvGlbYocyzji+XgAR6m0R\nEtGlkHJ2kYKq1gglIhB9pQp1EcGilazZxUWVKS8rkzQ/Sq/FW9o30b30nEJi\nAHGo\r\n=Y7ZX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAoDZ0e7aBeg2oYAi+q02o/xjPPT47Gqo/oG7VCwRrOcAiASSsVTZVwC+li3Se2fkrf5ho9UisnMjeLo2ruTZBCGnQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.1.0_1593020906968_0.6308226332498723"},"_hasShrinkwrap":false},"2.1.1":{"name":"react-query","version":"2.1.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"fd280eca7eb366d6002f2dde3871f20c09326c4e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.1.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-LC9qA1M4Ap8WUMbtsQ7bT6L0hmCuuF7SWYauXsBk+HEJlMFbWU17Hz0uIIrK3zqieCfyn7xmS9IxspUCLx3+tQ==","shasum":"4bffd8f73d6e93084bc59904618f00bad112e6c0","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.1.1.tgz","fileCount":17,"unpackedSize":606125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe85URCRA9TVsSAnZWagAAhWoP/RbxRWOGfvUilmgZhH+W\nS84rhKyLCXuOI9XEYLxMNTypNe15hbFE75XyKFbNQv7fsYMn5dsWjyryh7+v\n26QNsS1y1XTp1jzppdb2JTedweqH0AaMdHNRSSQFK04JxJ9FTC0HubEyrXu/\nGs+8gWffIFkx0Qh0vozAzL2S0BwjzAcqGD93//n32rQLl1ZF3vC6YOBecs6J\nrZRkAlIoydrkn0gbGuOsds1oSdgru/WqBlECJUhHd9U4n/LQEc7UytjZQgtV\n/8mvVLqZiJAzAlaoW4RVnLvVrwtB9qkMiZhwtiQVRm4iV3DsN+oPPMF0OaHE\n78ui3e3NBurwc+r3qlbOVxvdmohWDc+eEZ+QW7YsNFIZIU0DEeA1tUGnGYcP\nY/Sr7ZIxHKSGbcnhrS525df8QHb6WKOeKspjJhrxTlPYYoQ9vPwpZXj7sIKe\nGM6rQgBgKB89Bzzk5NnNZdP/cgAWZlfcnOGHXPBR5jB/JBuwaJb6Jt0/Pmo3\nyGsUSQH74iQAxM28UPu1bRuNDhaqtlFjQpvfj5orwb3KG4do3AlxoTMk4oM9\nmF7sKzMDjJ70hD7LxPh1ghIcILoYhs+Lj3idjGUziKSok/Cl8xKb+odKM1qO\nreTqtGRdfMOhroLykp5KFhykadegUraQqs9uqLoL6AtGaDx+r0SBmPvcUS5T\nKzvo\r\n=ZryN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDA4tzD0C/k5WCijBx3BKpmhW5ZvJh5byaA/WsoiwK4wAIgdxpOGpOBJ87vvx/qv3RmI/58mwI7gvypuWqHkZr2aSw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.1.1_1593021712642_0.578401827327897"},"_hasShrinkwrap":false},"2.2.0":{"name":"react-query","version":"2.2.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"2a31f8d005d5f9913047d61b91ee1e49fedbefac","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.2.0","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-hmSBfp1Sj8CVOmrpQ4DcyXScqSQI9k7G+pCjcxfqbeZHPFOmc3YI2toIFLprtkiPbEI4tltBb/0XvEIOmhI5Zw==","shasum":"2ab8e4b93bf1a2b6c43b9835c9f5eada2f939f45","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.2.0.tgz","fileCount":17,"unpackedSize":605113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe89j/CRA9TVsSAnZWagAAZgAP/j8jxWrPA7YpCJGDW0+t\nIOx6nv1VwmAAUNO6ZZbL0HT/xtd0OfUxL0C/f2+zrs5UO6Q9EtmiZTMbwR6e\n+95rrEstXcxrlRLWd+727ip08ImLPzZ5SmKkCwCeyr6b5o+0ugzGkbZGSEot\n4HeMBgpfplskMkfdMBaLPSYNpr1B8uAq4/c+D2kGnmIi1mgKz7ZriuOVDuTn\ndCDf9oG7073JpYFdGp6RC/EbF8u1g+oQBaisa6pOEX11//lrsRsTHorWiSLv\nvF1cyu+sTrooe2UHdZwBWPb8pGuPQc5iWU4YPFdmjbfudz70fDJQkv0bhge0\nhw43kZYBwti4IlLXjl1nDMv8GrMzIEZH77yo/ku3HVKAOgB1goTCozIkxUas\nEPpO/vg2N85lXfQkQ4wntyhTNfH88ZaaeLFrKU/44QoXjbj4P/d+2GydEBIE\ndc6VjZIpseDaw4nKlSsDRrtej7nuI14qCxAQdHjxGvpk+WjvtKV7GwR7tpZ6\nQZeguCUkv7hcxmG/4NR1jgjrvys4jS818b0oiE9s1j6+jlx8tNf0yBeKwKOL\nPkL2zmSvSr95akP0StiCW+VrYoQ6srbemVZEr/ZNS7v4BlUf+EYM6T0B23aV\ni7IPvEQjwt7tZiaCILGTqkoejKhjHRpZrStD8IddAntQNh/PcSwX75Xous3w\nkGiw\r\n=7+B3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhBPn2aekCsO6eaj67XrK97NMGiAgzfBpQGWNVWIHvzQIhAPkElYiNggi0KCOeSRXFfZzwR0ChxHPdaMK/zv87N/X0"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.2.0_1593039102165_0.33888949053525197"},"_hasShrinkwrap":false},"2.2.1":{"name":"react-query","version":"2.2.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"a68dc28727ce9628ac8b40132c9a8a0433c88fb6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.2.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Epyu9CFSH8Sl9g2+XzFuioFOZuy8gwzjYkcm6VstKdhwiPI+JuEXOQ/3olehG+sO5+CHIw1NBZ3ifNAMYi7KFw==","shasum":"308b0a2caddda95e7b41cf3d50e4103b165a44c5","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.2.1.tgz","fileCount":17,"unpackedSize":605242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe89/HCRA9TVsSAnZWagAAG0YP/3L0WuwUlL2kmQC3vc1A\n69IIwOtqgcLLbwiUBdB6Fb6Y7Snvn4B9wilJVjzEErqmTMqaU7zozU2du2wC\nd2sbYCEtbi2p7gpU5+d8NWZzXUWQ8LsTm8stTWVn4u5M4dtkJabX42hvwLeS\n7YVX5RzuBQk14qdkEEuWqdIu2fiDIyj/+E6ev6CILpWXr2elhQ5pKA16p61S\nfwiecYAol0/4VYAIC2lemVaN2Y8BJp7qPjjdLI+12zqjEea9A6sXjbcVdNTH\nWPlHoCcP0DbXdUh58AmX2n7eeioXApDmvrhIj0f6ww81/QbAcHK9EcAbhOIL\n+iyQh5Ny8gAzZMLOyC0coXnCzoulPZruTwvtqfmT7/k2DS9WwbkOPuciN+fE\nxGfQTirFRB90r7qAFXe/4xE0szAcvkPjxeRDRr+WcMD3UuAlJPKiq1huHrxe\nd7LJ2c0R88zd8zXomCNx/PmewJlO8zcfM7bkEfqh0jkPKK29gql/vMgcSZwg\n2f/EKr9NCJsv6B0IBqR5RI2p2iRY1TvkHpdoNNCBPEKB+I0aG+M2OQupL4Tf\nm1sEqVwg2zOdvxh3isuIvtZezL382V3uUWFoDDh6If0dmQqpEApeMrLTBUIn\nLrF9iirTbB06re6+6+KkNaAENXBi05j6xOBAanLW3Uk45LgpHko22NDltN+j\n67xq\r\n=rm0w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXXHmv/ujdn9NzSzbgWN9LBO1VXiRlKPHX2823gh1qSAiBRVfZ20BE/DC86zLtV7d+uTWFK38YnoYxbYkWAsw2gVg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.2.1_1593040838458_0.6281277712136453"},"_hasShrinkwrap":false},"2.2.2":{"name":"react-query","version":"2.2.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"0054f7ffff712bafd8fbf44aaba23afba85d350d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.2.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-MGqIFzMjPFRzX6EMXrZJT4cT4VyctumpJvEu5+jX2dFeyVEkorTf0O82ONgRe6kMbZegM8Sc5nsV0zNbDXtkfQ==","shasum":"6cba4620a95b3a1c0e4bb19d0f4847763a7f58ab","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.2.2.tgz","fileCount":17,"unpackedSize":607923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9AAZCRA9TVsSAnZWagAAT10P/iktHHCvATmGMSMxIt6v\nN+d+YrfLORNn5h7pa4bw8NeIzHA1meijJ/5Nnecz4TWmiEH8Ugmx32lC5XtB\nwlIbMWb3XJAf9pcOT1xqOl2h/F336urykdouGgn8BFI3u6W9zRaNyNfNZSLp\n52AdXwH0NwPD+8PcRdlat7N6cP1Z0mQjKmk5+O3KpPv0aOTRzgNuNaCvfPY6\neGpQE99AngcisDZ2QeirMWFPEMa2q/P38PrWsBY2zTT8nLz49qrFOmA9muuf\n1PND7df18j2P4B3S0v+W6d7DGnFhH7wMMGD4ZVWj/4KruMxLeOJcaO9eHB9y\nT5O6g5hNTLbgctljOC4J3TS7/cX+c2pNWVBPDfpYEpJidp+Aq3vsGjDZLe8h\nwG+cBcx/QmD4GsB8tufwjwSGz/NhBV7WbWdE3L8d9Vy76mvpQ7GOmecu8asC\nyjemMvwJyl7I2rqrNCylJaAmL1+7qhtHFQzXvsG/RrELnMzow2rhnzyqoGA5\nTWxqaT3T0qCPi2Jm/NTdD50pSCSHa0iw+ri0/hwW0X0OsPaOo4HpYto8Zy5V\nw1dgqUUkxqw65Fg+p8yeoag+vC2thZW3QyMBf3DYGzrAgveME8MQXoK/3phQ\n5NADFdC/Y9QXcyzYEz4vM5yDLuOlESxxk+3fMauGqy0Ioi6+dMGDUoi0qbHb\nOQmY\r\n=ASqV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJOM2k0M3TpNfmof3bzaUHwlGMcRGUp4Yt0o85z9+UagIgJKpPzLp6R1oSElhISeRdMkgxAwkKXyPni5x68BUi0OY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.2.2_1593049112984_0.5530257919368202"},"_hasShrinkwrap":false},"2.2.3":{"name":"react-query","version":"2.2.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"4712c0d4d77a12005d2d6557a375f783e62a1fba","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.2.3","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Jov5eRPqVn7xh+ekQr1CawMrvPK7lr1qXd2dtltsGcabyvq7vZUhAR8Z0AaKKQXc/LUunS2ceQ9k3uxHUK0ISw==","shasum":"0d5df4443bb3c7f6cf5b6bc501b8a127eabaa561","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.2.3.tgz","fileCount":17,"unpackedSize":607927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DQCCRA9TVsSAnZWagAA//kP/RDeHbLAF+HiosbF5SIc\nbq0UciVyBJ1uqMgNppSUW3aqthS933JbUZswqj8r3Y98bqVPdGujCejaf+n6\niJvCJc9j7mdeyx/+uTQHFkxpVHQHHVZ6GeBAL8PoulbBdenlk3hFeEBZSFD7\nHu8I+mQxo3D6BDzgGz0UPBVBFTT1SevF2j4BU8ycEwe+6ZteVvGWEctv6DNs\nGBpeZLd2AF2olCLzM3cL+7GZ9yhda2EKuQE0z6SgQzQ/OGzhUDCDvCXOGo79\nygZIQnr87gsl459QKsrROB6rd3mUF4biywQ12x9qdjA2Iku4QjYLVsisRNM3\nsEAv8CRtvubQgZX1h9FOYwSt+LsqyGVANpjuyjx/WwS4GhXZHIzwh93A2Udc\nsruhoH6eGNvlNbtsDQxF3T4nHDnKL1MhLZsTeqBVV9rVIJEmmySWUYBtcgpW\nGDR5a0AGheLx37VdG5d0Npo23z1Tu2qOAso1vnUzSKvchV1bL4FnbeIBGxhf\nzY9o5SgNPC9OidWLt+/IyoeTMVg/fM/c/kpirmp/H+u4668EtMt4DDO7ibHe\nQD1V0QIV/63BK7hN6+GF4CY5M+u1YmfpEwgyRrf88AeWMWKZEO0ENdtu8Z25\n3vDaErIE1IJzXGThGpIYKnmx+5LjA0+H4pUcx8fyBBE64TPRtinFsKlOHAC/\nHrMu\r\n=TxgZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgfHXurca/JNhhr2H70m6d6X/ZOD1J8SVYn6dY8dSkHAIhAO2nIWBYvbdnv9m+pi2AF7ubaUsuWSXakU/fvYASinXj"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.2.3_1593062401628_0.6558674921447374"},"_hasShrinkwrap":false},"2.4.0":{"name":"react-query","version":"2.4.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"d7048d1c35efae5826988448055033fbc59d4c56","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.0","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-62Nt5HCXdh4RIiKILrA1nkqHf6HRcFmy+jVwE7W2Istk16f028zbz4z19hw9lChZk/07cV/5hwMVhPb7ym+HWA==","shasum":"67c21e489f4c1597573f75cdd61847efcadde550","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.0.tgz","fileCount":17,"unpackedSize":613332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9NPUCRA9TVsSAnZWagAA5vsP/09pq9wFGLLd/cQUckVT\nGaHWYXotazT5VVks88WGC0/K5gugvKnR5iQNGtAv914GohBXKEqw/7VhrvQc\nd4izGsi4KVr6fTd7oZVzmKDUFduyT92I6ITPObzC9pTa/qa/ur3ZeNjB+lbs\nUQ8cOUGfloYy7gfPNXwws0E25lzqOb06lbwEa2nY3hUUIUphmxXMG5SilstN\n9jKs1ALtNR3id7kXNaXqmGEEootmqZctybjG71Lyrr61E0AmEWo5arlbGqg1\nrYzXbuMDZSeACaSDNoSbeuSYUGH0nGz8LWhI+9CqBLrSiAr7GHcNHcfkPDvE\nAHHysJv4SpPW9EStW5IUOxRY3vjzrq86YfVFcnfXVL5Mxps6L1V0hNaIsEKZ\n1NWNfSwUozX4uSrQiGimU3yfVNri4lbJSel9Ju6Rn78MjWZ+mAXGCm00HjNR\n1hI58gi/sSKBpJF8B9U06kU5TFZauxkYLZxsKKrw5Dn6XWhc9P2TkgPDsKLp\npFbYuNdLZ5YjyJeiFQdFW4wz3J8pr16mR6RgS3tvlK9OyudZiAGsUIxRc3NW\nl79fMp3IEx8c3KLDXXQZJYZ4htdEVxmSomwHz4lTbDYyVU3i15NFAelvfK6r\nDWj45goZcHmbBrN7lNc631B8RYKNGWOhOzcQ4zHB5SQTmUzT9aVPOW1gLE5D\n+jAC\r\n=GhXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUVFAM7QQ101+05cMWBh/ezj75+KoEAm09HEAxkZ64RAiAh4wbvNxxeoFbJNSgw5yvmX9JREkl+kpVGZH5fDcTVmA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.0_1593103315705_0.6449807677646155"},"_hasShrinkwrap":false},"2.4.1":{"name":"react-query","version":"2.4.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"5a5ad749e7ebdbd3e8130a294d2e14d534fb25a1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.1","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-dempWj7UbAlJTUs46Fh7vJ2xf4g0XtQEJR0BigHVrlgE+wF5UG0hDOi2mSqbD41Zg0Mcre3Fw2GRjM34mEQ84g==","shasum":"0743e14d34f784fef3228af6f4c1a10cff6b2fb3","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.1.tgz","fileCount":17,"unpackedSize":607008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9p9wCRA9TVsSAnZWagAAArwP/1sB37b5389FRtfFPtlX\noIo19UQcZ0ux1QTOQxpdug2eUm5SzLLuYIPXX3btJ5nXjSf6/uNv7l0JVBtq\n3bZvjzlOUdU6/iqzZewMm6rGnDxpfWZkuJaghR1WrjLuqciPCfWBrcZ+dJk+\nuxYSJtXaSemciaKglChrhlAtslW3upYqro/vIlCTP0EarZcfnvFhFu4+CIq5\nw/4Een7LDYkVJiBcuTq3WjDw8qKIFnkN5/7sNoAlGdCCOLHQA95h6MZuRnN3\nRIj05KAFe4IBcsu2SdH7boVTUOepCndZ4WTblK5cbdGEWgVL6Tp3OlbGZ2cX\nMTN9eZKduUNjXKjItxqrkkW8KMRJyCdNLPpCA3ulA5yRMHMF9YVuuoN6/bta\n5AeljzGATiei9P+wBkM488jgp5UCizIrD53sTm9u2fJKpjEL/tD6D36BLXFK\nrH/0IjDPvvtHyjbntyqcpCTMJ8hjhiox6+Vk2NGYRsZLFCtC517POkEm8VdQ\nWmLessLO1t1/p/Mm/GKyujf6jl3mnW85wDR1VKM3+gGkl8Ln7EFOvTsInmd1\nagx7OZQli2i4ymlsD8TOFXhfQ9PxdtNICD7By/sEGFFY+iSy6CIOKBJCclEB\n92aPKzsn7iO/+VbIZV6SDHcaDeiDKAnZlk8TibxpFbSmkry2X+M+48BBGPsj\nVNgW\r\n=FuyB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFqxL+FJuNQ2sM4uXwvR/d/w83CzXbT9rEis5Kl/tpKAiBtMM9rE35l4Iuns7ESzc8As7vrAXgpAi+0fJM9j1mrnw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.1_1593220973690_0.643663576622364"},"_hasShrinkwrap":false},"2.4.2":{"name":"react-query","version":"2.4.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"db5a51e087c7984d98da51ee6831780a5b3a64aa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ngznvYMmDkVINP+62zVcfImyG5wnGtMPAhIHR3Ao/FltXVtUzX6smBSTDLNGaOLhjz0fBvRrnMGl5prRHanwnA==","shasum":"79aed02aa964d86745bb5fb351ed43142722964c","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.2.tgz","fileCount":17,"unpackedSize":600673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9uAdCRA9TVsSAnZWagAAdpsP/A9ge7fuuWrYc0gWBdBV\nCg7bzk2x16qUx9Jye3RRMychN8sF3Rrysc63KFmrB6lKp/LHxfc/ODeV8axL\nfaDbvsHSw7hmUAywMnrsKLwtTLqWv+4cNpM7qqGfCYDpY/iclkqkxNNv9q8M\n8Ix3igW6sHr0vTNXSladX9yh1dNacBiCXr+lrkdus3Ty1aCPZpf7HG1+VE56\ngEwKQYcanrqijJiJROjgR99LhqxPQS3bmWnLtUj8iJyzGnUaquYf1GZ4DoPb\nhA1+ZdHPD20jkXwgpbs4804llV24gRrPTzpskZmb1fBOnkpYa59vhBiVGCwN\noQ0Tg0wI8bURRXjU6KfqTQFDZTKj5Jm8cJBwF8tUNsp4t/mOqHe3mON9AZsJ\nQ9UFh1Kbc/fbg0NxAPhFxxePMNnvv8EEG0d3e6ILhoydyJcYWijgEoBTs93D\nrh5JYktDKRVbhS996LcKq2iicYuD2mspAutMdVXUvT6qzwqlM3oJgIX/wMiR\n0ASkzKSwQAMH767YIIJdawEZ7ScH9qaTnZJtdnWVvZFGMSES+j7biWRIXldj\n+s4C0u6jUzPN9rFJw/NxLAqzk4cKEur3zQP978B9A3Mg/hGPWYaln9ZcBBf4\n5zd2Axa4FM8JhIcbRxBFvHLg0PEqWfmErHcWHkgympFW7S4dvv2piy7eVoT3\nSoN4\r\n=LhUM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuAODbvcdTk9cDEpP3sz/sjrLoHioDypckU3bdD2/pcAiEAtjq5UNDb1czrg+smoYqO5Sd4Mqpbs7koU1rFxVbCk/4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.2_1593237532602_0.3562716994513824"},"_hasShrinkwrap":false},"2.4.3":{"name":"react-query","version":"2.4.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","_temporarily_disabled_types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"gitHead":"50329b39a180e51f0f1c74b93b6163bfde318a4c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.3","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-zpjviI52r/p4d01o8dMoXWjlWn76CkLDIgWfzyqC/829OM/pwyw1cSwVzz9zgOROeOXmejs9w1GLbAbodOFeIA==","shasum":"7b7356db891b388c47e0be3a6b5dc1266c30e979","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.3.tgz","fileCount":17,"unpackedSize":601419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+ML7CRA9TVsSAnZWagAAIYcP/RcXfziGFkmZbiz4TD/I\nO0FRfJbwLjOOQ73j0AikrZrd98JS05CzoNdPzjWMJ1vjLKkNiHLPR6cjRRaa\naXvln+TS8rxplX063iqk9nWqhtXqKeARxMt/SEUfI3qsEkuW04v2DO4bNNEN\nxXtnfS7OV5NFy2039uuNxoT/7L2ELjcciRjHYS3fS7FGr0aYU0vJtjEhdce1\nW5Mo1YfwoWjOVTtlxOAoj8ViMjEYG53mBUmiTJJx82klxuAralRUFzQtAc89\nwXug6IcFowUi6vBStgjlS5jDctfe1gBfs/UFadqG9GhuInLEqsHwMCWJTXLs\nF0f8NUfgHIUYOAd+uMdsEx5QhSe4At2dsPghC7ewDJLVf8LEb6VsMQs8h0+l\nhOpSjLV/7sHVzZd7aIarl63njruztZ7WO2IcWmdP47eNAWCSJ1fVK7LiT76O\nJBDdvDzu/GcMABgIN2uTHkn8uERh5CCwGFNqnGpP9pGmRMfceDJGpeNpchnk\nvczKlNyFDEMkw3Jjblci7h0MWX8P6RxA5ZY5xejddDh1T1n1sWskaep9s4O0\n+PponHFBzKaFvYk2qvq6O9LmJYxfHJO1LG8PubbQ5aVxdjT+r4obsYDgtUxJ\nZiTBowCAxh+07mUsO7gz0ZK5gSnV6Y4OKemWC/T0u1/92K+4dounj/vjxhic\nnBpf\r\n=0Bic\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZuBmHyPT+pgstihTybnyipTraBX7enSeG+UBWqNxmoAiAB0LAA/abiY6TKw7h58V1EXlHodzP/dYbqTfkyZmw2LQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.3_1593361146383_0.6518783145535554"},"_hasShrinkwrap":false},"1.5.10":{"name":"react-query","version":"1.5.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,example/src,example/src/**}/*.{md,js,jsx,tsx} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4"},"readme":"<img src='https://github.com/tannerlinsley/react-query/raw/master/media/logo.png' width='300'/>\n\nHooks for fetching, caching and updating asynchronous data in React\n\nEnjoy this library? Try them all! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n# v1.x Documentation\n\nThis README is for the 1.x version of React Query. Please consider upgrading to the latest version to get the latest bug fixes and features!\n\n## Examples\n\n- Basic - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/basic) - [Source](./examples/basic)\n- Custom Hooks - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/custom-hooks) - [Source](./examples/custom-hooks)\n- Auto Refetching / Polling / Realtime - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/auto-refetching) - [Source](./examples/auto-refetching)\n- Window Refocus Refetching - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/focus-refetching) - [Source](./examples/focus-refetching)\n- Optimistic Updates - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/optimistic-updates) - [Source](./examples/optimistic-updates)\n- Pagination - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/pagination) - [Source](./examples/pagination)\n- Load-More & Infinite Scroll - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/load-more-infinite-scroll) - [Source](./examples/load-more-infinite-scroll)\n- Suspense - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/suspense) - [Source](./examples/suspense)\n- Playground (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/playground) - [Source](./examples/playground)\n- Star Wars (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/star-wars) - [Source](./examples/star-wars)\n- Rick And Morty (with devtools) - [CodeSandbox](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/1.x/examples/rick-morty) - [Source](./examples/rick-morty)\n\n# Documentation\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n\n- [Installation](#installation)\n- [Defaults to keep in mind](#defaults-to-keep-in-mind)\n- [Queries](#queries)\n  - [Query Keys](#query-keys)\n  - [Query Key Variables](#query-key-variables)\n  - [Optional Variables](#optional-variables)\n  - [Using a Query Object instead of parameters](#using-a-query-object-instead-of-parameters)\n  - [Dependent Queries](#dependent-queries)\n  - [Caching & Invalidation](#caching--invalidation)\n  - [Paginated Queries with `usePaginatedQuery`](#paginated-queries-with-usepaginatedquery)\n  - [Load-More & Infinite-Scroll with `useInfiniteQuery`](#load-more--infinite-scroll-with-useinfinitequery)\n  - [Scroll Restoration](#scroll-restoration)\n  - [Manual Querying](#manual-querying)\n  - [Retries](#retries)\n  - [Retry Delay](#retry-delay)\n  - [Prefetching](#prefetching)\n  - [Initial Data](#initial-data)\n  - [Initial Data Function](#initial-data-function)\n  - [Initial Data from Cache](#initial-data-from-cache)\n  - [SSR & Initial Data](#ssr--initial-data)\n  - [Suspense Mode](#suspense-mode)\n  - [Fetch-on-render vs Fetch-as-you-render](#fetch-on-render-vs-fetch-as-you-render)\n  - [Canceling Query Requests](#canceling-query-requests)\n- [Mutations](#mutations)\n  - [Basic Mutations](#basic-mutations)\n  - [Mutation Variables](#mutation-variables)\n  - [Invalidate and Refetch Queries from Mutations](#invalidate-and-refetch-queries-from-mutations)\n  - [Query Updates from Mutations](#query-updates-from-mutations)\n  - [Resetting Mutation State](#resetting-mutation-state)\n  - [Manually or Optimistically Setting Query Data](#manually-or-optimistically-setting-query-data)\n  - [Optimistic Updates with Automatic Rollback for Failed Mutations](#optimistic-updates-with-automatic-rollback-for-failed-mutations)\n- [Displaying Background Fetching Loading States](#displaying-background-fetching-loading-states)\n- [Displaying Global Background Fetching Loading State](#displaying-global-background-fetching-loading-state)\n- [Window-Focus Refetching](#window-focus-refetching)\n  - [Custom Window Focus Event](#custom-window-focus-event)\n  - [Ignoring Iframe Focus Events](#ignoring-iframe-focus-events)\n- [Custom Query Key Serializers (Experimental)](#custom-query-key-serializers-experimental)\n- [React Query Devtools](#react-query-devtools)\n- [API](#api)\n  - [`useQuery`](#usequery)\n  - [`usePaginatedQuery`](#usepaginatedquery)\n  - [`useInfiniteQuery`](#useinfinitequery)\n  - [`useMutation`](#usemutation)\n  - [`queryCache`](#querycache)\n  - [`queryCache.prefetchQuery`](#querycacheprefetchquery)\n  - [`queryCache.getQueryData`](#querycachegetquerydata)\n  - [`queryCache.setQueryData`](#querycachesetquerydata)\n  - [`queryCache.refetchQueries`](#querycacherefetchqueries)\n  - [`queryCache.cancelQueries`](#querycachecancelqueries)\n  - [`queryCache.removeQueries`](#querycacheremovequeries)\n  - [`queryCache.getQuery`](#querycachegetquery)\n  - [`queryCache.getQueries`](#querycachegetqueries)\n  - [`queryCache.isFetching`](#querycacheisfetching)\n  - [`queryCache.subscribe`](#querycachesubscribe)\n  - [`queryCache.clear`](#querycacheclear)\n  - [`useQueryCache`](#usequerycache)\n  - [`useIsFetching`](#useisfetching)\n  - [`ReactQueryConfigProvider`](#reactqueryconfigprovider)\n  - [`ReactQueryCacheProvider`](#reactquerycacheprovider)\n  - [`setConsole`](#setconsole)\n- [Contributors ✨](#contributors-)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n# Installation\n\n```bash\n$ npm i --save react-query\n# or\n$ yarn add react-query\n```\n\nReact Query uses [Scarf](https://www.npmjs.com/package/@scarf/scarf) to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting `scarfSettings.enabled = false` in your project's `package.json`. Alternatively, you can set the environment variable `SCARF_ANALYTICS=false` before you install.\n\n# Defaults to keep in mind\n\nOut of the box, React Query is configured with **aggressive but sane** defaults. **Sometimes these defaults can catch new users off guard or make learning/debugging difficult if they are unknown by the user.** Keep them in mind as you continue to learn and use React Query:\n\n- Query results that are _currently rendered on the screen_ will become \"stale\" immediately after they are resolved and will be refetched automatically in the background when they are rendered or used again. To change this, you can alter the default `staleTime` for queries to something other than `0` milliseconds.\n- Query results that become unused (all instances of the query are unmounted) will still be cached in case they are used again for a default of 5 minutes before they are garbage collected. To change this, you can alter the default `cacheTime` for queries to something other than `1000 * 60 * 5` milliseconds.\n- Stale queries will automatically be refetched in the background **when the browser window is refocused by the user**. You can disable this using the `refetchOnWindowFocus` option in queries or the global config.\n- Queries that fail will silently and automatically be retried **3 times, with exponential backoff delay** before capturing and displaying an error to the UI. To change this, you can alter the default `retry` and `retryDelay` options for queries to something other than `3` and the default exponential backoff function.\n- Query results by default are deep compared to detect if data has actually changed and if not, the data reference remains unchanged to better help with value stabilization with regards to useMemo and useCallback. The default deep compare function use here (`config.isDataEqual`) only supports comparing JSON-compatible primitives. If you are dealing with any non-json compatible values in your query responses OR are seeing performance issues with the deep compare function, you should probably disable it (`config.isDataEqual = () => false`) or customize it to better fit your needs.\n\n# Queries\n\nTo make a new query, call the `useQuery` hook with at least:\n\n- A **unique key for the query**\n- An **asynchronous function (or similar then-able)** to resolve the data\n\n```js\nimport { useQuery } from 'react-query'\n\nfunction App() {\n  const info = useQuery('todos', fetchTodoList)\n}\n```\n\nThe **unique key** you provide is used internally for refetching, caching, deduping related queries.\n\nThe query `info` returned contains all information about the query and can be easily destructured and used in your component:\n\n```js\nfunction Todos() {\n  const { status, data, error } = useQuery('todos', fetchTodoList)\n\n  if (status === 'loading') {\n    return <span>Loading...</span>\n  }\n\n  if (status === 'error') {\n    return <span>Error: {error.message}</span>\n  }\n\n  // also status === 'success', but \"else\" logic works, too\n  return (\n    <ul>\n      {data.map(todo => (\n        <li key={todo.id}>{todo.title}</li>\n      ))}\n    </ul>\n  )\n}\n```\n\n## Query Keys\n\nAt its core, React Query manages query caching for you and uses a serializable array or \"query key\" to do this. Using a query key that is **simple** and **unique to the query's data** is very important. In other similar libraries, you'll see the use of URLs and/or GraphQL query template strings to achieve this, but we believe at scale, this becomes prone to typos and errors. To relieve this issue, React Query Keys can be **strings** or **an array with a string and then any number of serializable primitives and/or objects**.\n\n### String-Only Query Keys\n\nThe simplest form of a key is actually not an array, but an individual string. When a string query key is passed, it is converted to an array internally with the string as the only item in the query key. This format is useful for:\n\n- Generic List/Index resources\n- Non-hierarchical resources\n\n```js\n// A list of todos\nuseQuery('todos', ...) // queryKey === ['todos']\n\n// Something else, whatever!\nuseQuery('somethingSpecial', ...) // queryKey === ['somethingSpecial']\n```\n\n### Array Keys\n\nWhen a query needs more information to uniquely describe its data, you can use an array with a string and any number of serializable objects to describe it. This is useful for:\n\n- Specific resources\n  - It's common to pass an ID, index, or other primitive\n- Queries with additional parameters\n  - It's common to pass an object of additional options\n\n```js\n// An individual todo\nuseQuery(['todo', 5], ...)\n// queryKey === ['todo', 5]\n\n// And individual todo in a \"preview\" format\nuseQuery(['todo', 5, { preview: true }], ...)\n// queryKey === ['todo', 5, { preview: 'true' } }]\n\n// A list of todos that are \"done\"\nuseQuery(['todos', { type: 'done' }], ...)\n// queryKey === ['todos', { type: 'done' }]\n```\n\n### Query Keys are serialized deterministically!\n\nThis means that no matter the order of keys in objects, all of the following queries would result in the same final query key of `['todos', { page, status }]`:\n\n```js\nuseQuery(['todos', { status, page }], ...)\nuseQuery(['todos', { page, status }], ...)\nuseQuery(['todos', { page, status, other: undefined }], ...)\n```\n\nThe following query keys, however, are not equal. Array item order matters!\n\n```js\nuseQuery(['todos', status, page], ...)\nuseQuery(['todos', page, status], ...)\nuseQuery(['todos', undefined, page, status], ...)\n```\n\n## Query Key Variables\n\nTo use external props, state, or variables in a query function, it's easiest to pass them as items in your array query keys! All query keys get passed through to your query function as parameters in the order they appear in the array key:\n\n```js\nfunction Todos({ completed }) {\n  const { status, data, error } = useQuery(\n    ['todos', { status, page }],\n    fetchTodoList\n  )\n}\n\n// Access the key, status and page variables in your query function!\nfunction fetchTodoList(key, { status, page }) {\n  return new Promise()\n  // ...\n}\n```\n\nIf you send through more items in your query key, they will also be available in your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    ['todo', todoId, { preview }],\n    fetchTodoById\n  )\n}\n\n// Access status and page in your query function!\nfunction fetchTodoById(key, todoId, { preview }) {\n  return new Promise()\n  // ...\n}\n```\n\nWhenever a query's key changes, the query will automatically update. In the following example, a new query is created whenever `todoId` changes:\n\n```js\nfunction Todo({ todoId }) {\n  const { status, data, error } = useQuery(['todo', todoId], fetchTodo)\n}\n```\n\n## Optional Variables\n\nIn some scenarios, you may find yourself needing to pass extra information to your query that shouldn't (or doesn't need to be) a part of the query key. `useQuery`, `usePaginatedQuery` and `useInfiniteQuery` all support passing an optional array of additional parameters to be passed to your query function:\n\n```js\nfunction Todo({ todoId, preview }) {\n  const { status, data, error } = useQuery(\n    // These will be used as the query key\n    ['todo', todoId],\n    // These will get passed directly to our query function\n    [\n      debug,\n      {\n        foo: true,\n        bar: false,\n      },\n    ],\n    fetchTodoById\n  )\n}\n\nfunction fetchTodoById(key, todoId, debug, { foo, bar }) {\n  return new Promise()\n  // ...\n}\n```\n\n## Using a Query Object instead of parameters\n\nAnywhere the `[queryKey, variables, queryFn, config]` options are supported throughout React Query's API, you can also use an object to express the same configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\nuseQuery({\n  queryKey: ['todo', 7],\n  queryFn: fetchTodos,\n  variables: [],\n  config: {},\n})\n```\n\n## Dependent Queries\n\nReact Query makes it easy to make queries that depend on other queries for both:\n\n- Parallel Queries (avoiding waterfalls) and\n- Serial Queries (when a piece of data is required for the next query to happen).\n\nTo do this, you can use the following 2 approaches:\n\n### Pass a falsy query key\n\nIf a query isn't ready to be requested yet, just pass a falsy value as the query key:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email], getUserByEmail)\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // `user` would be `null` at first (falsy),\n  // so the query will not execute while the query key is falsy\n  user && ['projects', user.id],\n  getProjectsByUser\n)\n```\n\n### Use a query key function that throws an exception\n\nIf a function is passed, the query will not execute until the function can be called without throwing:\n\n```js\n// Get the user\nconst { data: user } = useQuery(['user', email])\n\n// Then get the user's projects\nconst { data: projects } = useQuery(\n  // This will throw trying to access property `id` of `undefined` until the `user` is available\n  () => ['projects', user.id]\n)\n```\n\n## Caching & Invalidation\n\nReact Query caching is automatic out of the box. It uses a `stale-while-revalidate` in-memory caching strategy together with robust query deduping to always ensure a query's data is only cached when it's needed and only cached once even if that query is used multiple times across your application.\n\nAt a glance:\n\n- The cache is keyed on a deterministic hash of your query key.\n- By default, query results become **stale** immediately after a successful fetch. This can be configured using the `staleTime` option at both the global and query-level.\n- Stale queries are automatically refetched whenever their **query keys change (this includes variables used in query key tuples)**, when they are freshly mounted from not having any instances on the page, or when they are refetched via the query cache manually.\n- Though a query result may be stale, query results are by default **always** _cached_ **when in use**.\n- If and when a query is no longer being used, it becomes **inactive** and by default is cached in the background for **5 minutes**. This time can be configured using the `cacheTime` option at both the global and query-level.\n- After a query is inactive for the `cacheTime` specified (defaults to 5 minutes), the query is deleted and garbage collected.\n\n<details>\n <summary>A more detailed example of the caching lifecycle</summary>\n\nLet's assume we are using the default `cacheTime` of **5 minutes** and the default `staleTime` of `0`.\n\n- A new instance of `useQuery('todos', fetchTodos)` mounts.\n  - Since no other queries have been made with this query + variable combination, this query will show a hard loading state and make a network request to fetch the data.\n  - It will then cache the data using `'todos'` and `fetchTodos` as the unique identifiers for that cache.\n  - A stale invalidation is scheduled using the `staleTime` option as a delay (defaults to `0`, or immediately).\n- A second instance of `useQuery('todos', fetchTodos)` mounts elsewhere.\n  - Because this exact data exist in the cache from the first instance of this query, that data is immediately returned from the cache.\n- Both instances of the `useQuery('todos', fetchTodos)` query are unmounted and no longer in use.\n  - Since there are no more active instances to this query, a cache timeout is set using `cacheTime` to delete and garbage collect the query (defaults to **5 minutes**).\n- No more instances of `useQuery('todos', fetchTodos)` appear within **5 minutes**.\n  - This query and its data are deleted and garbage collected.\n\n</details>\n\n## Paginated Queries with `usePaginatedQuery`\n\nRendering paginated data is a very common UI pattern to avoid overloading bandwidth or even your UI. React Query exposes a `usePaginatedQuery` that is very similar to `useQuery` that helps with this very scenario.\n\nConsider the following example where we would ideally want to increment a pageIndex (or cursor) for a query. If we were to use `useQuery`, it would technically work fine, but the UI would jump in and out of the `success` and `loading` states as different queries are created and destroyed for each page or cursor. By using `usePaginatedQuery` we get a few new things:\n\n- Instead of `data`, you should use `resolvedData` instead. This is the data from the last known successful query result. As new page queries resolve, `resolvedData` remains available to show the last page's data while a new page is requested. When the new page data is received, `resolvedData` get's updated to the new page's data.\n- If you specifically need the data for the exact page being requested, `latestData` is available. When the desired page is being requested, `latestData` will be `undefined` until the query resolves, then it will get updated with the latest pages data result.\n\n```js\nfunction Todos() {\n  const [page, setPage] = React.useState(0)\n\n  const fetchProjects = (key, page = 0) => fetch('/api/projects?page=' + page)\n\n  const {\n    status,\n    resolvedData,\n    latestData,\n    error,\n    isFetching,\n  } = usePaginatedQuery(['projects', page], fetchProjects)\n\n  return (\n    <div>\n      {status === 'loading' ? (\n        <div>Loading...</div>\n      ) : status === 'error' ? (\n        <div>Error: {error.message}</div>\n      ) : (\n        // `resolvedData` will either resolve to the latest page's data\n        // or if fetching a new page, the last successful page's data\n        <div>\n          {resolvedData.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </div>\n      )}\n      <span>Current Page: {page + 1}</span>\n      <button\n        onClick={() => setPage(old => Math.max(old - 1, 0))}\n        disabled={page === 0}\n      >\n        Previous Page\n      </button>{' '}\n      <button\n        onClick={() =>\n          // Here, we use `latestData` so the Next Page\n          // button isn't relying on potentially old data\n          setPage(old => (!latestData || !latestData.hasMore ? old : old + 1))\n        }\n        disabled={!latestData || !latestData.hasMore}\n      >\n        Next Page\n      </button>\n      {\n        // Since the last page's data potentially sticks around between page requests,\n        // we can use `isFetching` to show a background loading\n        // indicator since our `status === 'loading'` state won't be triggered\n        isFetching ? <span> Loading...</span> : null\n      }{' '}\n    </div>\n  )\n}\n```\n\n## Load-More & Infinite-Scroll with `useInfiniteQuery`\n\nRendering lists that can additively \"load more\" data onto an existing set of data or \"infinite scroll\" is also a very common UI pattern. React Query supports a useful version of `useQuery` called `useInfiniteQuery` for querying these types of lists.\n\nWhen using `useInfiniteQuery`, you'll notice a few things are different:\n\n- `data` is now an array of arrays that contain query group results, instead of the query results themselves\n- A `fetchMore` function is now available\n- A `getFetchMore` option is available for both determining if there is more data to load and the information to fetch it. This information is supplied as an additional parameter in the query function (which can optionally be overridden when calling the `fetchMore` function)\n- A `canFetchMore` boolean is now available and is `true` if `getFetchMore` returns a truthy value\n- An `isFetchingMore` boolean is now available to distinguish between a background refresh state and a loading more state\n\n### Example\n\nLet's assume we have an API that returns pages of `projects` 3 at a time based on a `cursor` index along with a cursor that can be used to fetch the next group of projects\n\n```js\nfetch('/api/projects?cursor=0')\n// { data: [...], nextCursor: 3}\nfetch('/api/projects?cursor=3')\n// { data: [...], nextCursor: 6}\nfetch('/api/projects?cursor=6')\n// { data: [...], nextCursor: 9}\nfetch('/api/projects?cursor=9')\n// { data: [...] }\n```\n\nWith this information, we can create a \"Load More\" UI by:\n\n- Waiting for `useInfiniteQuery` to request the first group of data by default\n- Returning the information for the next query in `getFetchMore`\n- Calling `fetchMore` function\n\n> Note: It's very important you do not call `fetchMore` with arguments unless you want them to override the `fetchMoreInfo` data returned from the `getFetchMore` function. eg. Do not do this: `<button onClick={fetchMore} />` as this would send the onClick event to the `fetchMore` function.\n\n```js\nimport { useInfiniteQuery } from 'react-query'\n\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  return status === 'loading' ? (\n    <p>Loading...</p>\n  ) : status === 'error' ? (\n    <p>Error: {error.message}</p>\n  ) : (\n    <>\n      {data.map((group, i) => (\n        <React.Fragment key={i}>\n          {group.projects.map(project => (\n            <p key={project.id}>{project.name}</p>\n          ))}\n        </React.Fragment>\n      ))}\n      <div>\n        <button\n          onClick={() => fetchMore()}\n          disabled={!canFetchMore || isFetchingMore}\n        >\n          {isFetchingMore\n            ? 'Loading more...'\n            : canFetchMore\n            ? 'Load More'\n            : 'Nothing more to load'}\n        </button>\n      </div>\n      <div>{isFetching && !isFetchingMore ? 'Fetching...' : null}</div>\n    </>\n  )\n}\n```\n\n### What happens when an infinite query needs to be refetched?\n\nWhen an infinite query becomes `stale` and needs to be refetched, each group is fetched `sequentially`, starting from the first one. This ensures that even if the underlying data is mutated we're not using stale cursors and potentially getting duplicates or skipping records. If an infinite query's results are ever removed from the cache, the pagination restarts at the initial state with only the initial group being requested.\n\n### What if I need to pass custom information to my query function?\n\nBy default, the info returned from `getFetchMore` will be supplied to the query function, but in some cases, you may want to override this. You can pass custom variables to the `fetchMore` function which will override the default info like so:\n\n```js\nfunction Projects() {\n  const fetchProjects = (key, cursor = 0) =>\n    fetch('/api/projects?cursor=' + cursor)\n\n  const {\n    status,\n    data,\n    isFetching,\n    isFetchingMore,\n    fetchMore,\n    canFetchMore,\n  } = useInfiniteQuery('projects', fetchProjects, {\n    getFetchMore: (lastGroup, allGroups) => lastGroup.nextCursor,\n  })\n\n  // Pass your own custom fetchMoreInfo\n  const skipToCursor50 = () => fetchMore(50)\n}\n```\n\n## Scroll Restoration\n\nOut of the box, \"scroll restoration\" for all queries (including paginated and infinite queries) Just Works™️ in React Query. The reason for this is that query results are cached and able to be retrieved synchronously when a query is rendered. As long as your queries are being cached long enough (the default time is 5 minutes) and have not been garbage collected, scroll restoration will work out of the box all the time.\n\n## Manual Querying\n\nIf you ever want to disable a query from automatically running, you can use the `manual = true` option. When `manual` is set to true:\n\n- The query will start in the `status === 'success'` state\n- The query will not automatically fetch on mount\n- The query will not automatically refetch due to rerenders, new instances appearing, or changes to its query key or variables.\n\n> Pro Tip #1: Because manual queries start in the `status === 'success'` state, you should consider supplying an `initialData` option to pre-populate the cache or similarly use a default parameter value when destructuring the query result\n\n> Pro Tip #2: Don't use `manual` for dependent queries. Use [Dependent Queries](#dependent-queries) instead!\n\n```js\nfunction Todos() {\n  const { status, data, error, refetch, isFetching } = useQuery(\n    'todos',\n    fetchTodoList,\n    {\n      manual: true,\n      initialData: [],\n    }\n  )\n\n  return (\n    <>\n      <button onClick={() => refetch()}>Fetch Todos</button>\n\n      {status === 'loading' ? (\n        <span>Loading...</span>\n      ) : status === 'error' ? (\n        <span>Error: {error.message}</span>\n      ) : (\n        // `status === 'success'` will be the initial state, so we need\n        // account for our initial data (an empty array)\n        <>\n          <ul>\n            {!data.length\n              ? 'No todos yet...'\n              : data.map(todo => <li key={todo.id}>{todo.title}</li>)}\n          </ul>\n          <div>{isFetching ? 'Fetching...' : null}</div>\n        </>\n      )}\n    </>\n  )\n}\n```\n\n## Retries\n\nWhen a `useQuery` query fails (the function throws an error), React Query will automatically retry the query if that query's request has not reached the max number of consecutive retries (defaults to `3`) or a function is provided to determine if a retry is allowed.\n\nYou can configure retries both on a global level and an individual query level.\n\n- Setting `retry = false` will disable retries.\n- Setting `retry = 6` will retry failing requests 6 times before showing the final error thrown by the function.\n- Setting `retry = true` will infinitely retry failing requests.\n- Setting `retry = (failureCount, error) => ...` allows for custom logic based on why the request failed.\n\n```js\nimport { useQuery } from 'react-query'\n\n// Make specific query retry a certain number of times\nconst { status, data, error } = useQuery(['todos', 1], fetchTodoListPage, {\n  retry: 10, // Will retry failed requests 10 times before displaying an error\n})\n```\n\n## Retry Delay\n\nBy default, retries in React Query do not happen immediately after a request fails. As is standard, a back-off delay is gradually applied to each retry attempt.\n\nThe default `retryDelay` is set to double (starting at `1000`ms) with each attempt, but not exceed 30 seconds:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nThough it is not recommended, you can obviously override the `retryDelay` function/integer in both the Provider and individual query options. If set to an integer instead of a function the delay will always be the same amount of time:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  retryDelay: 1000, // Will always wait 1000ms to retry, regardless of how many retries\n})\n```\n\n## Prefetching\n\nIf you're lucky enough, you may know enough about what your users will do to be able to prefetch the data they need before it's needed! If this is the case, you can use the `prefetchQuery` function to prefetch the results of a query to be placed into the cache:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst prefetchTodos = async () => {\n  const queryData = await queryCache.prefetchQuery('todos', () =>\n    fetch('/todos')\n  )\n  // The results of this query will be cached like a normal query\n}\n```\n\nThe next time a `useQuery` instance is used for a prefetched query, it will use the cached data! If no instances of `useQuery` appear for a prefetched query, it will be deleted and garbage collected after the time specified in `cacheTime`.\n\nAlternatively, if you already have the data for your query synchronously available, you can use the [Query Cache's `setQueryData` method](#querycachesetquerydata) to directly add or update a query's cached result.\n\n## Initial Data\n\nThere may be times when you already have the initial data for a query synchronously available in your app. If and when this is the case, you can use the `config.initialData` option to set the initial data for a query and skip the first round of fetching!\n\nWhen providing an `initialData` value that is anything other than `undefined`:\n\n- The query `status` will initialize as `success` instead of `loading`\n- The query's `isStale` property will initialize as `true` instead of false\n- The query will not automatically fetch until it is invalidated somehow (eg. window refocus, queryCache refetching, etc)\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: initialTodos,\n  })\n}\n```\n\n## Initial Data Function\n\nIf the process for accessing a query's initial data is intensive or just not something you want to perform on every render, you can pass a function as the `initialData` value. This function will be executed only once when the query is initialized, saving you precious memory and CPU:\n\n```js\nfunction Todos() {\n  const queryInfo = useQuery('todos', () => fetch('/todos'), {\n    initialData: () => {\n      return getExpensiveTodos()\n    },\n  })\n}\n```\n\n## Initial Data from Cache\n\nIn some circumstances, you may be able to provide the initial data for a query from the cached result of another. A good example of this would be searching the cached data from a todos list query for an individual todo item, then using that as the initial data for your individual todo query:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Use a todo from the 'todos' query as the initial data for this todo query\n      return queryCache.getQueryData('todos')?.find(d => d.id === todoId)\n    },\n  })\n}\n```\n\nMost of the time, this pattern works well, but if the source query you're using to look up the initial data from is old, you may not want to use the data at all and just fetch from the server. To make this decision easier, you can use the `queryCache.getQuery` method instead to get more information about the source query, including a `query.state.updatedAt` timestamp you can use to decide if the query is \"fresh\" enough for your needs:\n\n```js\nfunction Todo({ todoId }) {\n  const queryInfo = useQuery(['todo', todoId], () => fetch('/todos'), {\n    initialData: () => {\n      // Get the query object\n      const query = queryCache.getQuery('todos')\n\n      // If the query exists and has data that is no older than 10 seconds...\n      if (query && Date.now() - query.state.updatedAt <= 10 * 1000) {\n        // return the individual todo\n        return query.state.data.find(d => d.id === todoId)\n      }\n\n      // Otherwise, return undefined and let it fetch!\n    },\n  })\n}\n```\n\n## SSR & Initial Data\n\nWhen using SSR (server-side-rendering) with React Query there are a few things to note:\n\n- Query caches are not written to memory during SSR. This is outside of the scope of React Query and easily leads to out-of-sync data when used with frameworks like Next.js or other SSR strategies.\n- Queries rendered on the server will by default use the `initialData` of an unfetched query. This means that by default, `data` will be set to `undefined`. To get around this in SSR, you can either pre-seed a query's cache data using the `config.initialData` option:\n\n```js\nconst { status, data, error } = useQuery('todos', fetchTodoList, {\n  initialData: [{ id: 0, name: 'Implement SSR!' }],\n})\n\n// data === [{ id: 0, name: 'Implement SSR!'}]\n```\n\nOr, alternatively you can just destructure from `undefined` in your query results:\n\n```js\nconst { status, data = [{ id: 0, name: 'Implement SSR!' }], error } = useQuery(\n  'todos',\n  fetchTodoList\n)\n```\n\nThe query's state will still reflect that it is stale and has not been fetched yet, and once mounted, it will continue as normal and request a fresh copy of the query result.\n\n## Suspense Mode\n\nReact Query can also be used with React's new Suspense for Data Fetching API's. To enable this mode, you can set either the global or query level config's `suspense` option to `true`.\n\nGlobal configuration:\n\n```js\n// Configure for all queries\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  suspense: true,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\nQuery configuration:\n\n```js\nimport { useQuery } from 'react-query'\n\n// Enable for an individual query\nuseQuery(queryKey, queryFn, { suspense: true })\n```\n\nWhen using suspense mode, `status` states and `error` objects are not needed and are then replaced by usage of the `React.Suspense` component (including the use of the `fallback` prop and React error boundaries for catching errors). Please see the [Suspense Example](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/suspense) for more information on how to set up suspense mode.\n\nIn addition to queries behaving differently in suspense mode, mutations also behave a bit differently. By default, instead of supplying the `error` variable when a mutation fails, it will be thrown during the next render of the component it's used in and propagate to the nearest error boundary, similar to query errors. If you wish to disable this, you can set the `useErrorBoundary` option to `false`. If you wish that errors are not thrown at all, you can set the `throwOnError` option to `false` as well!\n\n## Fetch-on-render vs Fetch-as-you-render\n\nOut of the box, React Query in `suspense` mode works really well as a **Fetch-on-render** solution with no additional configuration. However, if you want to take it to the next level and implement a `Fetch-as-you-render` model, we recommend implementing [Prefetching](#prefetching) on routing and/or user interactions events to initialize queries before they are needed.\n\n## Canceling Query Requests\n\nBy default, queries that become inactive before their promises are resolved are simply ignored instead of canceled. Why is this?\n\n- For most applications, ignoring out-of-date queries is sufficient.\n- Cancellation APIs may not be available for every query function.\n- If cancellation APIs are available, they typically vary in implementation between utilities/libraries (eg. Fetch vs Axios vs XMLHttpRequest).\n\nBut don't worry! If your queries are high-bandwidth or potentially very expensive to download, React Query exposes a generic way to **cancel** query requests using a cancellation token or other related API. To integrate with this feature, attach a `cancel` function to the promise returned by your query that implements your request cancellation. When a query becomes out-of-date or inactive, this `promise.cancel` function will be called (if available):\n\nUsing `axios`:\n\n```js\nimport { CancelToken } from 'axios'\n\nconst query = useQuery('todos', () => {\n  // Create a new CancelToken source for this request\n  const source = CancelToken.source()\n\n  const promise = axios.get('/todos', {\n    // Pass the source token to your request\n    cancelToken: source.token,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = () => {\n    source.cancel('Query was cancelled by React Query')\n  }\n\n  return promise\n})\n```\n\nUsing `fetch`:\n\n```js\nconst query = useQuery('todos', () => {\n  // Create a new AbortController instance for this request\n  const controller = new AbortController()\n  // Get the abortController's signal\n  const signal = controller.signal\n\n  const promise = fetch('/todos', {\n    method: 'get',\n    // Pass the signal to your request\n    signal,\n  })\n\n  // Cancel the request if React Query calls the `promise.cancel` method\n  promise.cancel = controller.abort\n\n  return promise\n})\n```\n\n# Mutations\n\nUnlike queries, mutations are typically used to create/update/delete data or perform server side-effects. For this purpose, React Query exports a `useMutation` hook.\n\n## Basic Mutations\n\nAssuming the server implements a ping mutation, that returns \"pong\" string, here's an example of the most basic mutation:\n\n```js\nconst PingPong = () => {\n  const [mutate, { status, data, error }] = useMutation(pingMutation)\n\n  const onPing = async () => {\n    try {\n      const data = await mutate()\n      console.log(data)\n      // { ping: 'pong' }\n    } catch {\n      // Uh oh, something went wrong\n    }\n  }\n  return <button onClick={onPing}>Ping</button>\n}\n```\n\nMutations without variables are not that useful, so let's add some variables to closer match reality.\n\n## Mutation Variables\n\nTo pass `variables` to your `mutate` function, call `mutate` with an object.\n\n```js\n// Notice how the fetcher function receives an object containing\n// all possible variables\nconst createTodo = ({ title }) => {\n  /* trigger an http request */\n}\n\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    // Prevent the form from refreshing the page\n    e.preventDefault()\n\n    try {\n      await mutate({ title })\n      // Todo was successfully created\n    } catch (error) {\n      // Uh oh, something went wrong\n    }\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\nEven with just variables, mutations aren't all that special, but when used with the `onSuccess` option, the [Query Cache's `refetchQueries` method](#querycacherefetchqueries) and the [Query Cache's `setQueryData` method](#querycachesetquerydata), mutations become a very powerful tool.\n\nNote that since version 1.1.0, the `mutate` function is no longer called synchronously so you cannot use it in an event callback. If you need to access the event in `onSubmit` you need to wrap `mutate` in another function. This is due to [React event pooling](https://reactjs.org/docs/events.html#event-pooling).\n\n```js\n// This will not work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(event => {\n    event.preventDefault()\n    fetch('/api', new FormData(event.target))\n  })\n\n  return <form onSubmit={mutate}>...</form>\n}\n\n// This will work\nconst CreateTodo = () => {\n  const [mutate] = useMutation(formData => {\n    fetch('/api', formData)\n  })\n  const onSubmit = event => {\n    event.preventDefault()\n    mutate(new FormData(event.target))\n  }\n\n  return <form onSubmit={onSubmit}>...</form>\n}\n```\n\n## Invalidate and Refetch Queries from Mutations\n\nWhen a mutation succeeds, it's likely that other queries in your application need to update. Where other libraries that use normalized caches would attempt to update local queries with the new data imperatively, React Query helps you to avoid the manual labor that comes with maintaining normalized caches and instead prescribes **atomic updates and refetching** instead of direct cache manipulation.\n\nFor example, assume we have a mutation to post a new todo:\n\n```js\nconst [mutate] = useMutation(postTodo)\n```\n\nWhen a successful `postTodo` mutation happens, we likely want all `todos` queries to get refetched to show the new todo item. To do this, you can use `useMutation`'s `onSuccess` options and the `queryCache`'s `refetchQueries`:\n\n```js\nimport { useMutation, queryCache } from 'react-query'\n\n// When this mutation succeeds, refetch any queries with the `todos` or `reminders` query key\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos')\n    queryCache.refetchQueries('reminders')\n  },\n})\n\nmutate(todo)\n\n// The 3 queries below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery('todos', fetchTodoList)\nconst todoListQuery = useQuery(['todos', { page: 1 }], fetchTodoList)\nconst remindersQuery = useQuery('reminders', fetchReminders)\n```\n\nYou can even refetch queries with specific variables by passing a more specific query key to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(['todos', { type: 'done' }])\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery('todos', fetchTodoList)\n```\n\nThe `refetchQueries` API is very flexible, so even if you want to **only** refetch `todos` queries that don't have any more variables or subkeys, you can pass an `exact: true` option to the `refetchQueries` method:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries('todos', { exact: true })\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos'], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { type: 'done' }], fetchTodoList)\n```\n\nIf you find yourself wanting **even more** granularity, you can pass a predicate function to the `refetchQueries` method. This function will receive each query object from the queryCache and allow you to return `true` or `false` for whether you want to refetch that query:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () => {\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    )\n  },\n})\n\nmutate(todo)\n\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 20 }], fetchTodoList)\n// The query below will be refetched when the mutation above succeeds\nconst todoListQuery = useQuery(['todos', { version: 10 }], fetchTodoList)\n// However, the following query below will NOT be refetched\nconst todoListQuery = useQuery(['todos', { version: 5 }], fetchTodoList)\n```\n\nIf you prefer that the promise returned from `mutate()` only resolves **after** the `onSuccess` callback, you can return a promise in the `onSuccess` callback:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: () =>\n    // return a promise!\n    queryCache.refetchQueries(\n      query => query.queryKey[0] === 'todos' && query.queryKey[1]?.version >= 10\n    ),\n})\n\nconst run = async () => {\n  try {\n    await mutate(todo)\n    console.log('I will only log after onSuccess is done!')\n  } catch {}\n}\n```\n\nIf you would like to refetch queries on error or even regardless of a mutation's success or error, you can use the `onError` or `onSettled` callbacks:\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onError: error => {\n    // Refetch queries or more...\n  },\n  onSettled: (data, error) => {\n    // Refetch queries or more...\n  },\n})\n\nmutate(todo)\n```\n\nYou might find that you want to **add on** to some of the `useMutation`'s options at the time of calling `mutate`. To do that, you can provide any of the same options to the `mutate` function after your mutation variable. Supported option overrides include:\n\n- `onSuccess` - Will be fired before the `useMutation`-level `onSuccess` handler\n- `onError` - Will be fired before the `useMutation`-level `onError` handler\n- `onSettled` - Will be fired before the `useMutation`-level `onSettled` handler\n- `throwOnError`\n\n```js\nconst [mutate] = useMutation(addTodo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire second\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire second\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire second\n  },\n})\n\nmutate(todo, {\n  onSuccess: (data, mutationVariables) => {\n    // I will fire first!\n  },\n  onSettled: (data, error, mutationVariables) => {\n    // I will fire first!\n  },\n  onError: (error, mutationVariables) => {\n    // I will fire first!\n  },\n  throwOnError: true,\n})\n```\n\n## Query Updates from Mutations\n\nWhen dealing with mutations that **update** objects on the server, it's common for the new object to be automatically returned in the response of the mutation. Instead of refetching any queries for that item and wasting a network call for data we already have, we can take advantage of the object returned by the mutation function and update the existing query with the new data immediately using the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n```js\nconst [mutate] = useMutation(editTodo, {\n  onSuccess: data => queryCache.setQueryData(['todo', { id: 5 }], data),\n})\n\nmutate({\n  id: 5,\n  name: 'Do the laundry',\n})\n\n// The query below will be updated with the response from the\n// successful mutation\nconst { status, data, error } = useQuery(['todo', { id: 5 }], fetchTodoByID)\n```\n\nYou might want to tight the `onSuccess` logic into a reusable mutation, for that you can\ncreate a custom hook like this:\n\n```js\nconst useMutateTodo = () => {\n  return useMutate(editTodo, {\n    // Notice the second argument is the variables object that the `mutate` function receives\n    onSuccess: (data, variables) => {\n      queryCache.setQueryData(['todo', { id: variables.id }], data)\n    },\n  })\n}\n```\n\n## Resetting Mutation State\n\nIt's sometimes the case that you need to clear the `error` or `data` of a mutation request. To do this, you can use the `reset` function to handle this:\n\n```js\nconst CreateTodo = () => {\n  const [title, setTitle] = useState('')\n  const [mutate, { error, reset }] = useMutation(createTodo)\n\n  const onCreateTodo = async e => {\n    e.preventDefault()\n    await mutate({ title })\n  }\n\n  return (\n    <form onSubmit={onCreateTodo}>\n      {error && <h5 onClick={() => reset()}>{error}</h5>}\n      <input\n        type=\"text\"\n        value={title}\n        onChange={e => setTitle(e.target.value)}\n      />\n      <br />\n      <button type=\"submit\">Create Todo</button>\n    </form>\n  )\n}\n```\n\n## Manually or Optimistically Setting Query Data\n\nIn rare circumstances, you may want to manually update a query's response with a custom value. To do this, you can again use the [Query Cache's `setQueryData`](#querycachesetquerydata) method:\n\n> **It's important to understand** that when you manually or optimistically update a query's data value, the potential that you display out-of-sync data to your users is very high. It's recommended that you only do this if you plan to refetch the query very soon or perform a mutation to \"commit\" your manual changes (and also roll back your eager update if the refetch or mutation fails).\n\n```js\n// Full replacement\nqueryCache.setQueryData(['todo', { id: 5 }], newTodo)\n\n// or functional update\nqueryCache.setQueryData(['todo', { id: 5 }], previous => ({\n  ...previous,\n  type: 'done',\n}))\n```\n\n## Optimistic Updates with Automatic Rollback for Failed Mutations\n\nWhen you optimistically update your state before performing a mutation, there is a non-zero chance that the mutation will fail. In most cases, you can just trigger a refetch for your optimistic queries to revert them to their true server state. In some circumstances though, refetching may not work correctly and the mutation error could represent some type of server issue that won't make it possible to refetch. In this event, you can instead choose to rollback your update.\n\nTo do this, `useMutation`'s `onMutate` handler option allows you to return a value that will later be passed to both `onError` and `onSettled` handlers as the last argument. In most cases, it is most useful to pass a rollback function.\n\n### Updating a list of todos when adding a new todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries('todos')\n\n    // Snapshot the previous value\n    const previousTodos = queryCache.getQueryData('todos')\n\n    // Optimistically update to the new value\n    queryCache.setQueryData('todos', old => [...old, newTodo])\n\n    // Return the snapshotted value\n    return () => queryCache.setQueryData('todos', previousTodos)\n  },\n  // If the mutation fails, use the value returned from onMutate to roll back\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.refetchQueries('todos')\n  },\n})\n```\n\n### Updating a single todo\n\n```js\nuseMutation(updateTodo, {\n  // When mutate is called:\n  onMutate: newTodo => {\n    // Cancel any outgoing refetches (so they don't overwrite our optimistic update)\n    queryCache.cancelQueries(['todos', newTodo.id])\n\n    // Snapshot the previous value\n    const previousTodo = queryCache.getQueryData(['todos', newTodo.id], newTodo)\n\n    // Optimistically update to the new value\n    queryCache.setQueryData(['todos', newTodo.id], newTodo)\n\n    // Return a rollback function\n    return () => queryCache.setQueryData(['todos', newTodo.id], previousTodo)\n  },\n  // If the mutation fails, use the rollback function we returned above\n  onError: (err, newTodo, rollback) => rollback(),\n  // Always refetch after error or success:\n  onSettled: () => {\n    queryCache.refetchQueries(['todos', newTodo.id])\n  },\n})\n```\n\nYou can also use the `onSettled` function in place of the separate `onError` and `onSuccess` handlers if you wish:\n\n```js\nuseMutation(updateTodo, {\n  // ...\n  onSettled: (newTodo, error, variables, rollback) => {\n    if (error) {\n      rollback()\n    }\n  },\n})\n```\n\n# Displaying Background Fetching Loading States\n\nA query's `status === 'loading'` state is sufficient enough to show the initial hard-loading state for a query, but sometimes you may want to display an additional indicator that a query is refetching in the background. To do this, queries also supply you with an `isFetching` boolean that you can use to show that it's in a fetching state, regardless of the state of the `status` variable:\n\n```js\nfunction Todos() {\n  const { status, data: todos, error, isFetching } = useQuery(\n    'todos',\n    fetchTodos\n  )\n\n  return status === 'loading' ? (\n    <span>Loading...</span>\n  ) : status === 'error' ? (\n    <span>Error: {error.message}</span>\n  ) : (\n    <>\n      {isFetching ? <div>Refreshing...</div> : null}\n\n      <div>\n        {todos.map(todo => (\n          <Todo todo={todo} />\n        ))}\n      </div>\n    </>\n  )\n}\n```\n\n# Displaying Global Background Fetching Loading State\n\nIn addition to individual query loading states, if you would like to show a global loading indicator when **any** queries are fetching (including in the background), you can use the `useIsFetching` hook:\n\n```js\nimport { useIsFetching } from 'react-query'\n\nfunction GlobalLoadingIndicator() {\n  const isFetching = useIsFetching()\n\n  return isFetching ? (\n    <div>Queries are fetching in the background...</div>\n  ) : null\n}\n```\n\n# Window-Focus Refetching\n\nIf a user leaves your application and returns to stale data, you may want to trigger an update in the background to update any stale queries. Thankfully, **React Query does this automatically for you**, but if you choose to disable it, you can use the `ReactQueryConfigProvider`'s `refetchAllOnWindowFocus` option to disable it:\n\n```js\nconst queryConfig = { refetchAllOnWindowFocus: false }\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n## Custom Window Focus Event\n\nIn rare circumstances, you may want to manage your own window focus events that trigger React Query to revalidate. To do this, React Query provides a `setFocusHandler` function that supplies you the callback that should be fired when the window is focused and allows you to set up your own events. When calling `setFocusHandler`, the previously set handler is removed (which in most cases will be the default handler) and your new handler is used instead. For example, this is the default handler:\n\n```js\nsetFocusHandler(handleFocus => {\n  // Listen to visibillitychange and focus\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('visibilitychange', handleFocus, false)\n    window.addEventListener('focus', handleFocus, false)\n  }\n\n  return () => {\n    // Be sure to unsubscribe if a new handler is set\n    window.removeEventListener('visibilitychange', handleFocus)\n    window.removeEventListener('focus', handleFocus)\n  }\n})\n```\n\n## Ignoring Iframe Focus Events\n\nA great use-case for replacing the focus handler is that of iframe events. Iframes present problems with detecting window focus by both double-firing events and also firing false-positive events when focusing or using iframes within your app. If you experience this, you should use an event handler that ignores these events as much as possible. I recommend [this one](https://gist.github.com/tannerlinsley/1d3a2122332107fcd8c9cc379be10d88)! It can be set up in the following way:\n\n```js\nimport { setFocusHandler } from 'react-query'\nimport onWindowFocus from './onWindowFocus' // The gist above\n\nsetFocusHandler(onWindowFocus) // Boom!\n```\n\n# Custom Query Key Serializers (Experimental)\n\n> **WARNING:** This is an advanced and experimental feature. There be dragons here. Do not change the Query Key Serializer unless you know what you are doing and are fine with encountering edge cases in React Query's API\n\n<details>\n<summary>Show Me The Dragons!</summary>\n\nIf you absolutely despise the default query key implementation, then please file an issue in this repo first. If you still believe you need something different, then you can choose to replace the default query key serializer with your own by using the `ReactQueryConfigProvider` hook's `queryKeySerializerFn` option:\n\n```js\nconst queryConfig = {\n  queryKeySerializerFn: queryKey => {\n    // Your custom logic here...\n\n    // Make sure object keys are sorted and all values are\n    // serializable\n    const queryFnArgs = getQueryArgs(queryKey)\n\n    // Hash the query key args to get a string\n    const queryHash = hash(queryFnArgs)\n\n    // Return both the queryHash and normalizedQueryHash as a tuple\n    return [queryHash, queryFnArgs]\n  },\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n- `userQueryKey: any`\n  - This is the queryKey passed in `useQuery` and all other public methods and utilities exported by React Query.\n  - It may be a string or an array of serializable values\n  - If a string is passed, it must be wrapped in an array when returned as the `queryFnArgs`\n- `queryHash: string`\n  - This must be a unique `string` representing the entire query key.\n  - It must be stable and deterministic and should not change if things like the order of variables are changed or shuffled.\n- `queryFnArgs: Array<any>`\n  - This array will be spread into the query function arguments and should be the same format as the queryKey but be deterministically stable and should not change structure if the variables of the query stay the same, but change order within array position.\n\n> An additional `stableStringify` utility is also exported to help with stringifying objects to have sorted keys.\n\n### URL Query Key Serializer Example\n\nThe example below shows how to build your own serializer for use with URLs and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\nfunction urlQueryKeySerializer(queryKey) {\n  // Deconstruct the url\n  let [url, params = ''] = queryKey.split('?')\n\n  // Remove trailing slashes from the url to make an ID\n  url = url.replace(/\\/{1,}$/, '')\n\n  // Build the searchQuery object\n  params.split('&').filter(Boolean)\n\n  // If there are search params, return a different key\n  if (Object.keys(params).length) {\n    let searchQuery = {}\n\n    params.forEach(param => {\n      const [key, value] = param.split('=')\n      searchQuery[key] = value\n    })\n\n    // Use stableStringify to turn searchQuery into a stable string\n    const searchQueryHash = stableStringify(searchQuery)\n\n    // Get the stable json object for the normalized key\n    searchQuery = JSON.parse(searchQueryHash)\n\n    return [`${url}_${searchQueryHash}`, [url, searchQuery]]\n  }\n\n  return [url, [url]]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: urlQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useUrlQuery(url, options) {\n  return useQuery(url, (url, params) =>\n    axios\n      .get(url, {\n        params,\n      })\n      .then(res => res.data)\n  )\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useUrlQuery(`/todos`)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useUrlQuery(`/todos?status=pending`)\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useUrlQuery(`/todos/${id}`)\n}\n\nrefetchQuery('/todos')\nrefetchQuery('/todos?status=pending')\nrefetchQuery('/todos/5')\n```\n\n### Function Query Key Serializer Example\n\nThe example below shows how to you build your own functional serializer and use it with React Query:\n\n```js\nimport { ReactQueryConfigProvider, stableStringify } from 'react-query'\n\n// A map to keep track of our function pointers\nconst functionSerializerMap = new Map()\n\nfunction functionQueryKeySerializer(queryKey) {\n  if (!queryKey) {\n    return []\n  }\n\n  let queryFn = queryKey\n  let variables\n\n  if (Array.isArray(queryKey)) {\n    queryFn = queryKey[0]\n    variables = queryKey[1]\n  }\n\n  // Get or create an ID for the function pointer\n  const queryGroupId =\n    functionSerializerMap.get(queryFn) ||\n    (() => {\n      const id = Date.now()\n      functionSerializerMap.set(queryFn, id)\n      return id\n    })()\n\n  const variablesIsObject = isObject(variables)\n\n  const variablesHash = variablesIsObject ? stableStringify(variables) : ''\n\n  const queryHash = `${queryGroupId}_${variablesHash}`\n\n  return [queryHash, queryGroupId, variablesHash, variables]\n}\n\nconst queryConfig = {\n  queryKeySerializerFn: functionQueryKeySerializer,\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n// Heck, you can even make your own custom useQueryHook!\n\nfunction useFunctionQuery(functionTuple, options) {\n  const [queryFn, variables] = Array.isArray(functionTuple)\n    ? functionTuple\n    : [functionTuple]\n  return useQuery(functionTuple, queryFn, options)\n}\n\n// Use it in your app!\n\nfunction Todos() {\n  const todosQuery = useFunctionQuery(getTodos)\n}\n\nfunction FilteredTodos({ status = 'pending' }) {\n  const todosQuery = useFunctionQuery([getTodos, { status }])\n}\n\nfunction Todo({ id }) {\n  const todoQuery = useFunctionQuery([getTodo, { id }])\n}\n\nrefetchQuery(getTodos)\nrefetchQuery([getTodos, { type: 'pending' }])\nrefetchQuery([getTodo, { id: 5 }])\n```\n\n</details>\n\n# React Query Devtools\n\nReact query has dedicated devtools! Visit the [React Query Devtools Github Repo](https://github.com/tannerlinsley/react-query-devtools) for information on how to install and use them!\n\nTo see a demo, [check out the Sandbox example!](https://codesandbox.io/s/github/tannerlinsley/react-query/tree/master/examples/playground)\n\n[![React Query Header](https://github.com/tannerlinsley/react-query-devtools/raw/master/media/header.png)](https://github.com/tannerlinsley/react-query-devtools)\n\n# API\n\n## `useQuery`\n\n```js\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = useQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  onSettled,\n  suspense,\n  initialData,\n  refetchOnMount,\n  queryFnParamsFilter\n})\n\n// or using the object syntax\n\nconst queryInfo = useQuery({\n  queryKey,\n  queryFn,\n  variables,\n  config\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any | Function() => any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n  - If set to a function, the function will be called **once** during the shared/root query initialization, and be expected to synchronously return the initialData\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n- `queryFnParamsFilter: Function(args) => filteredArgs`\n  - Optional\n  - This function will filter the params that get passed to `queryFn`.\n  - For example, you can filter out the first query key from the params by using `queryFnParamsFilter: args => args.slice(1)`.\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `usePaginatedQuery`\n\n```js\nconst {\n  status,\n  resolvedData,\n  latestData,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n} = usePaginatedQuery(queryKey, [, queryVariables], queryFn, {\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n  - Must return a promise that will either resolves data or throws an error.\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data and will be passed the new data as a parameter\n- `onError: Function(error) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `resolvedData: Any`\n  - Defaults to `undefined`.\n  - The last successfully resolved data for the query.\n  - When fetching based on a new query key, the value will resolve to the last known successful value, regardless of query key\n- `latestData: Any`\n  - Defaults to `undefined`.\n  - The actual data object for this query and its specific query key\n  - When fetching an uncached query, this value will be `undefined`\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n\n## `useInfiniteQuery`\n\n```js\n\nconst queryFn = (...queryKey, fetchMoreVariable) => Promise\n\nconst {\n  status,\n  data,\n  error,\n  isFetching,\n  failureCount,\n  refetch,\n  fetchMore,\n  canFetchMore,\n} = useInfiniteQuery(queryKey, [, queryVariables], queryFn, {\n  getFetchMore: (lastPage, allPages) => fetchMoreVariable\n  manual,\n  retry,\n  retryDelay,\n  staleTime\n  cacheTime,\n  refetchInterval,\n  refetchIntervalInBackground,\n  refetchOnWindowFocus,\n  onSuccess,\n  onError,\n  suspense,\n  initialData,\n  refetchOnMount\n})\n```\n\n### Options\n\n- `queryKey: String | [String, Variables: Object] | falsy | Function => queryKey`\n  - **Required**\n  - The query key to use for this query.\n  - If a string is passed, it will be used as the query key.\n  - If a `[String, Object]` tuple is passed, they will be serialized into a stable query key. See [Query Keys](#query-keys) for more information.\n  - If a falsy value is passed, the query will be disabled and not run automatically.\n  - If a function is passed, it should resolve to any other valid query key type. If the function throws, the query will be disabled and not run automatically.\n  - The query will automatically update when this key changes (if the key is not falsy and if `manual` is not set to `true`).\n  - `Variables: Object`\n    - If a tuple with variables is passed, this object should be **serializable**.\n    - Nested arrays and objects are supported.\n    - The order of object keys is sorted to be stable before being serialized into the query key.\n- `queryFn: Function(variables) => Promise(data/error)`\n  - **Required**\n  - The function that the query will use to request data.\n  - Receives the following variables in the order that they are provided:\n    - Query Key Variables\n    - Optional Query Variables passed after the key and before the query function\n    - Optionally, the single variable returned from the `getFetchMore` function, used to fetch the next page\n  - Must return a promise that will either resolves data or throws an error.\n- `getFetchMore: Function(lastPage, allPages) => fetchMoreVariable | Boolean`\n  - When new data is received for this query, this function receives both the last page of the infinite list of data and the full array of all pages.\n  - It should return a **single variable** that will be passed as the last optional parameter to your query function\n- `manual: Boolean`\n  - Set this to `true` to disable automatic refetching when the query mounts or changes query keys.\n  - To refetch the query, use the `refetch` method returned from the `useQuery` instance.\n- `retry: Boolean | Int | Function(failureCount, error) => shouldRetry | Boolean`\n  - If `false`, failed queries will not retry by default.\n  - If `true`, failed queries will retry infinitely.\n  - If set to an `Int`, e.g. `3`, failed queries will retry until the failed query count meets that number.\n- `retryDelay: Function(retryAttempt: Int) => Int`\n  - This function receives a `retryAttempt` integer and returns the delay to apply before the next attempt in milliseconds.\n  - A function like `attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)` applies exponential backoff.\n  - A function like `attempt => attempt * 1000` applies linear backoff.\n- `staleTime: Int | Infinity`\n  - The time in milliseconds that cache data remains fresh. After a successful cache update, that cache data will become stale after this duration.\n  - If set to `Infinity`, query will never go stale\n- `cacheTime: Int | Infinity`\n  - The time in milliseconds that unused/inactive cache data remains in memory. When a query's cache becomes unused or inactive, that cache data will be garbage collected after this duration.\n  - If set to `Infinity`, will disable garbage collection\n- `refetchInterval: false | Integer`\n  - Optional\n  - If set to a number, all queries will continuously refetch at this frequency in milliseconds\n- `refetchIntervalInBackground: Boolean`\n  - Optional\n  - If set to `true`, queries that are set to continuously refetch with a `refetchInterval` will continue to refetch while their tab/window is in the background\n- `refetchOnWindowFocus: Boolean`\n  - Optional\n  - Set this to `false` to disable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `true`).\n  - Set this to `true` to enable automatic refetching on window focus (useful, when `refetchAllOnWindowFocus` is set to `false`.\n- `onSuccess: Function(data) => data`\n  - Optional\n  - This function will fire any time the query successfully fetches new data.\n- `onError: Function(err) => void`\n  - Optional\n  - This function will fire if the query encounters an error and will be passed the error.\n- `onSettled: Function(data, error) => data`\n  - Optional\n  - This function will fire any time the query is either successfully fetched or errors and be passed either the data or error\n- `suspense: Boolean`\n  - Optional\n  - Set this to `true` to enable suspense mode.\n  - When `true`, `useQuery` will suspend when `status === 'loading'`\n  - When `true`, `useQuery` will throw runtime errors when `status === 'error'`\n- `initialData: any`\n  - Optional\n  - If set, this value will be used as the initial data for the query cache (as long as the query hasn't been created or cached yet)\n- `refetchOnMount: Boolean`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, will disable additional instances of a query to trigger background refetches\n\n### Returns\n\n- `status: String`\n  - Will be:\n    - `loading` if the query is in an initial loading state. This means there is no cached data and the query is currently fetching, eg `isFetching === true`)\n    - `error` if the query attempt resulted in an error. The corresponding `error` property has the error received from the attempted fetch\n    - `success` if the query has received a response with no errors and is ready to display its data. The corresponding `data` property on the query is the data received from the successful fetch or if the query is in `manual` mode and has not been fetched yet `data` is the first `initialData` supplied to the query on initialization.\n- `data: Any`\n  - Defaults to `[]`.\n  - This array contains each \"page\" of data that has been requested\n- `error: null | Error`\n  - Defaults to `null`\n  - The error object for the query, if an error was thrown.\n- `isFetching: Boolean`\n  - Defaults to `true` so long as `manual` is set to `false`\n  - Will be `true` if the query is currently fetching, including background fetching.\n- `isFetchingMore: Boolean`\n  - If using `paginated` mode, this will be `true` when fetching more results using the `fetchMore` function.\n- `failureCount: Integer`\n  - The failure count for the query.\n  - Incremented every time the query fails.\n  - Reset to `0` when the query succeeds.\n- `refetch: Function({ force, throwOnError }) => void`\n  - A function to manually refetch the query if it is stale.\n  - To bypass the stale check, you can pass the `force: true` option and refetch it regardless of it's freshness\n  - If the query errors, the error will only be logged. If you want an error to be thrown, pass the `throwOnError: true` option\n- `fetchMore: Function(fetchMoreVariableOverride) => Promise`\n  - This function allows you to fetch the next \"page\" of results.\n  - `fetchMoreVariableOverride` allows you to optionally override the fetch more variable returned from your `getCanFetchMore` option to your query function to retrieve the next page of results.\n- `canFetchMore: Boolean`\n  - If using `paginated` mode, this will be `true` if there is more data to be fetched (known via the required `getFetchMore` option function).\n\n## `useMutation`\n\n```js\nconst [mutate, { status, data, error, reset }] = useMutation(mutationFn, {\n  onMutate\n  onSuccess,\n  onError,\n  onSettled,\n  throwOnError,\n  useErrorBoundary,\n  { ...selectedUseQueryOptions },\n})\n\nconst promise = mutate(variables, {\n  onSuccess,\n  onSettled,\n  onError,\n  throwOnError,\n})\n```\n\n### Options\n\n- `mutationFn: Function(variables) => Promise`\n  - **Required**\n  - A function that performs an asynchronous task and returns a promise.\n  - `variables` is an object that `mutate` will pass to your `mutationFn`\n- `onMutate: Function(variables) => Promise | snapshotValue`\n  - Optional\n  - This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive\n  - Useful to perform optimistic updates to a resource in hopes that the mutation succeeds\n  - The value returned from this function will be passed to both the `onError` and `onSettled` functions and can be useful for rolling back optimistic updates in the event of a mutation failure.\n- `onSuccess: Function(data, variables) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is successful and will be passed the mutation's result.\n  - Fires after the `mutate`-level `onSuccess` handler (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onError: Function(err, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire if the mutation encounters an error and will be passed the error.\n  - Fires after the `mutate`-level `onError` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `onSettled: Function(data, error, variables, onMutateValue) => Promise | undefined`\n  - Optional\n  - This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error\n  - Fires after the `mutate`-level `onSettled` handerl (if it is defined)\n  - If a promise is returned, it will be awaited and resolved before proceeding\n- `throwOnError`\n  - Defaults to `false`\n  - Set this to `true` if failed mutations should re-throw errors from the mutation function to the `mutate` function.\n- `useErrorBoundary`\n  - Defaults to the global query config's `useErrorBoundary` value, which is `false`\n  - Set this to true if you want mutation errors to be thrown in the render phase and propagate to the nearest error boundary\n- `selectedUseQueryOptions`\n  - _Selected_ options of `useQuery` are also applicable here. E.g. `retry` and `retryDelay` can be used as described in the [`useQuery` section](#usequery). _Documentation of these options will be improved in the future._\n\n### Returns\n\n- `mutate: Function(variables, { onSuccess, onSettled, onError, throwOnError }) => Promise`\n  - The mutation function you can call with variables to trigger the mutation and optionally override the original mutation options.\n  - `variables: any`\n    - Optional\n    - The variables object to pass to the `mutationFn`.\n  - Remaining options extend the same options described above in the `useMutation` hook.\n  - Lifecycle callbacks defined here will fire **before** those of the same type defined in the `useMutation`-level options.\n- `status: String`\n  - Will be:\n    - `idle` initial status prior to the mutation function executing.\n    - `loading` if the mutation is currently executing.\n    - `error` if the last mutation attempt resulted in an error.\n    - `success` if the last mutation attempt was successful.\n- `data: undefined | Any`\n  - Defaults to `undefined`\n  - The last successfully resolved data for the query.\n- `error: null | Error`\n  - The error object for the query, if an error was encountered.\n- `promise: Promise`\n  - The promise that is returned by the `mutationFn`.\n\n## `queryCache`\n\nThe `queryCache` instance is the backbone of React Query that manages all of the state, caching, lifecycle and magic of every query. It supports relatively unrestricted, but safe, access to manipulate query's as you need. Its available properties and methods are:\n\n- [`prefetchQuery`](#querycacheprefetchquery)\n- [`getQueryData`](#querycachegetquerydata)\n- [`setQueryData`](#querycachesetquerydata)\n- [`refetchQueries`](#querycacherefetchqueries)\n- [`cancelQueries`](#querycachecancelqueries)\n- [`removeQueries`](#querycacheremovequeries)\n- [`getQueries`](#querycachegetqueries)\n- [`getQuery`](#querycachegetquery)\n- [`subscribe`](#querycachesubscribe)\n- [`isFetching`](#querycacheisfetching)\n- [`clear`](#querycacheclear)\n\n## `queryCache.prefetchQuery`\n\n`prefetchQuery` is an asynchronous function that can be used to fetch and cache a query response before it is needed or fetched with `useQuery`.\n\n- If the query already exists and is fresh (not stale), the call will resolve immediately and no action will be taken.\n  - If you want to force the query to prefetch again, you can pass the `force: true` option in the query config\n- If the query does not exist, it will be created and immediately be marked as stale. **If this created query is not utilized by a query hook in the `cacheTime` (defaults to 5 minutes), the query will be garbage collected**.\n\n> The difference between using `prefetchQuery` and `setQueryData` is that `prefetchQuery` is async and will ensure that duplicate requests for this query are not created with `useQuery` instances for the same query are rendered while the data is fetching.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(queryKey, queryFn)\n```\n\nFor convenience in syntax, you can also pass optional query variables to `prefetchQuery` just like you can `useQuery`:\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = await queryCache.prefetchQuery(\n  queryKey,\n  queryVariables,\n  queryFn,\n  config\n)\n```\n\n### Options\n\nThe options for `prefetchQuery` are exactly the same as those of [`useQuery`](#usequery) with the exception of:\n\n- `config.throwOnError: Boolean`\n  - Set this `true` if you want `prefetchQuery` to throw an error when it encounters errors.\n\n### Returns\n\n- `promise: Promise`\n  - A promise is returned that will either immediately resolve with the query's cached response data, or resolve to the data returned by the fetch function. It **will not** throw an error if the fetch fails. This can be configured by setting the `throwOnError` option to `true`.\n\n## `queryCache.getQueryData`\n\n`getQueryData` is a synchronous function that can be used to get an existing query's cached data. If the query does not exist, `undefined` will be returned.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst data = queryCache.getQueryData(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `data: any | undefined`\n  - The data for the cached query, or `undefined` if the query does not exist.\n\n## `queryCache.setQueryData`\n\n`setQueryData` is a synchronous function that can be used to immediately update a query's cached data. If the query does not exist, it will be created and immediately be marked as stale. **If the query is not utilized by a query hook in the default `cacheTime` of 5 minutes, the query will be garbage collected**.\n\n> The difference between using `setQueryData` and `prefetchQuery` is that `setQueryData` is sync and assumes that you already synchronously have the data available. If you need to fetch the data asynchronously, it's suggested that you either refetch the query key or use `prefetchQuery` to handle the asynchronous fetch.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.setQueryData(queryKey, updater)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n- `updater: Any | Function(oldData) => newData`\n  - If non-function is passed, the data will be updated to this value\n  - If a function is passed, it will receive the old data value and be expected to return a new one.\n\n### Using an updater value\n\n```js\nsetQueryData(queryKey, newData)\n```\n\n### Using an updater function\n\nFor convenience in syntax, you can also pass an updater function which receives the current data value and returns the new one:\n\n```js\nsetQueryData(queryKey, oldData => newData)\n```\n\n## `queryCache.refetchQueries`\n\nThe `refetchQueries` method can be used to refetch single or multiple queries in the cache based on their query keys or any other functionally accessible property/state of the query. By default, queries that are fresh (not stale) will not be refetched, but you can override this by passing the `force: true` option.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.refetchQueries(inclusiveQueryKeyOrPredicateFn, {\n  exact,\n  throwOnError,\n  force,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey: QueryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n- `throwOnError: Boolean`\n  - When set to `true`, this function will throw if any of the query refetch tasks fail.\n- `force: Boolean`\n  - When set to `true`, queries that match the refetch predicate will be refetched regardless if they are stale.\n\n### Returns\n\nThis function returns a promise that will resolve when all of the queries are done being refetched. By default, it **will not** throw an error if any of those queries refetches fail, but this can be configured by setting the `throwOnError` option to `true`\n\n## `queryCache.cancelQueries`\n\nThe `cancelQueries` method can be used to cancel outgoing queries based on their query keys or any other functionally accessible property/state of the query.\n\nThis is most useful when performing optimistic updates since you will likely need to cancel any outgoing query refetches so they don't clobber your optimistic update when they resolve.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.cancelQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.removeQueries`\n\nThe `removeQueries` method can be used to remove queries from the cache based on their query keys or any other functionally accessible property/state of the query.\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.removeQueries(queryKeyOrPredicateFn, {\n  exact,\n})\n```\n\n### Options\n\n- `queryKeyOrPredicateFn` can either be a [Query Key](#query-keys) or a `function`\n  - `queryKey`\n    - If a query key is passed, queries will be filtered to those where this query key is included in the existing query's query key. This means that if you passed a query key of `'todos'`, it would match queries with the `todos`, `['todos']`, and `['todos', 5]`. See [Query Keys](#query-keys) for more information.\n  - `Function(query) => Boolean`\n    - This predicate function will be called for every single query in the cache and be expected to return truthy for queries that are `found`.\n    - The `exact` option has no effect with using a function\n- `exact: Boolean`\n  - If you don't want to search queries inclusively by query key, you can pass the `exact: true` option to return only the query with the exact query key you have passed. Remember to destructure it out of the array!\n\n### Returns\n\nThis function does not return anything\n\n## `queryCache.getQuery`\n\n`getQuery` is a slightly more advanced synchronous function that can be used to get an existing query object from the cache. This object not only contains **all** the state for the query, but all of the instances, and underlying guts of the query as well. If the query does not exist, `undefined` will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios (eg. Looking at the query.state.updatedAt timestamp to decide whether a query is fresh enough to be used as an initial value)\n\n```js\nimport { queryCache } from 'react-query'\n\nconst query = queryCache.getQuery(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `query: QueryObject`\n  - The query object from the cache\n\n## `queryCache.getQueries`\n\n`getQueries` is even more advanced synchronous function that can be used to get existing query objects from the cache that partially match query key. If queries do not exist, empty array will be returned.\n\n> Note: This is not typically needed for most applications, but can come in handy when needing more information about a query in rare scenarios\n\n```js\nimport { queryCache } from 'react-query'\n\nconst queries = queryCache.getQueries(queryKey)\n```\n\n### Options\n\n- `queryKey: QueryKey`\n  - See [Query Keys](#query-keys) for more information on how to construct and use a query key\n\n### Returns\n\n- `queries: QueryObject[]`\n  - Query objects from the cache\n\n## `queryCache.isFetching`\n\nThis `isFetching` property is an `integer` representing how many queries, if any, in the cache are currently fetching (including background-fetching, loading new pages, or loading more infinite query results)\n\n```js\nimport { queryCache } from 'react-query'\n\nif (queryCache.isFetching) {\n  console.log('At least one query is fetching!')\n}\n```\n\nReact Query also exports a handy [`useIsFetching`](#useisfetching) hook that will let you subscribe to this state in your components without creating a manual subscription to the query cache.\n\n## `queryCache.subscribe`\n\nThe `subscribe` method can be used to subscribe to the query cache as a whole and be informed of safe/known updates to the cache like query states changing or queries being updated, added or removed\n\n```js\nimport { queryCache } from 'react-query'\n\nconst callback = cache => {}\n\nconst unsubscribe = queryCache.subscribe(callback)\n```\n\n### Options\n\n- `callback: Function(queryCache) => void`\n  - This function will be called with the query cache any time it is updated via its tracked update mechanisms (eg, `query.setState`, `queryCache.removeQueries`, etc). Out of scope mutations to the queryCache are not encouraged and will not fire subscription callbacks\n\n### Returns\n\n- `unsubscribe: Function => void`\n  - This function will unsubscribe the callback from the query cache.\n\n## `queryCache.clear`\n\nThe `clear` method can be used to clear the queryCache entirely and start fresh.\n\n```js\nimport { queryCache } from 'react-query'\n\nqueryCache.clear()\n```\n\n### Returns\n\n- `queries: Array<Query>`\n  - This will be an array containing the queries that were found.\n\n## `useQueryCache`\n\nThe `useQueryCache` hook returns the current queryCache instance.\n\n```js\nimport { useQueryCache } from 'react-query'\n\nconst queryCache = useQueryCache()\n```\n\nIf you are using the `ReactQueryCacheProvider` to set a custom cache, you cannot simply import `{ queryCache }` any more. This hook will ensure you're getting the correct instance.\n\n## `useIsFetching`\n\n`useIsFetching` is an optional hook that returns the `number` of the queries that your application is loading or fetching in the background (useful for app-wide loading indicators).\n\n```js\nimport { useIsFetching } from 'react-query'\n\nconst isFetching = useIsFetching()\n```\n\n### Returns\n\n- `isFetching: Int`\n  - Will be the `number` of the queries that your application is currently loading or fetching in the background.\n\n## `ReactQueryConfigProvider`\n\n`ReactQueryConfigProvider` is an optional provider component and can be used to define defaults for all instances of `useQuery` within it's sub-tree:\n\n```js\nimport { ReactQueryConfigProvider } from 'react-query'\n\nconst queryConfig = {\n  // Global\n  suspense: false,\n  useErrorBoundary: undefined, // Defaults to the value of `suspense` if not defined otherwise\n  throwOnError: false,\n  refetchAllOnWindowFocus: true,\n  queryKeySerializerFn: queryKey => [queryHash, queryFnArgs],\n  onMutate: () => {},\n  onSuccess: () => {},\n  onError: () => {},\n  onSettled: () => {},\n\n  // useQuery\n  retry: 3,\n  retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n  staleTime: 0,\n  cacheTime: 5 * 60 * 1000,\n  refetchInterval: false,\n  queryFnParamsFilter: args => filteredArgs,\n  refetchOnMount: true,\n  isDataEqual: (previous, next) => true, // or false\n}\n\nfunction App() {\n  return (\n    <ReactQueryConfigProvider config={queryConfig}>\n      ...\n    </ReactQueryConfigProvider>\n  )\n}\n```\n\n### Options\n\n- `config: Object`\n  - Must be **stable** or **memoized**. Do not create an inline object!\n  - For non-global properties please see their usage in both the [`useQuery` hook](#usequery) and the [`useMutation` hook](#usemutation).\n\n## `ReactQueryCacheProvider`\n\n`ReactQueryCacheProvider` is an optional provider component for explicitly setting the query cache used by React Query. This is useful for creating component-level caches that are not completely global, as well as making truly isolated unit tests.\n\n```js\nimport { ReactQueryCacheProvider, makeQueryCache } from 'react-query'\n\nconst queryCache = makeQueryCache()\n\nfunction App() {\n  return (\n    <ReactQueryCacheProvider queryCache={queryCache}>\n      ...\n    </ReactQueryCacheProvider>\n  )\n}\n```\n\n### Options\n\n- `queryCache: Object`\n  - In instance of queryCache, you can use the `makeQueryCache` factory to create this.\n  - If not provided, a new cache will be generated.\n\n## `setConsole`\n\n`setConsole` is an optional utility function that allows you to replace the `console` interface used to log errors. By default, the `window.console` object is used. If no global `console` object is found in the environment, nothing will be logged.\n\n```js\nimport { setConsole } from 'react-query'\nimport { printLog, printWarn, printError } from 'custom-logger'\n\nsetConsole({\n  log: printLog,\n  warn: printWarn,\n  error: printError,\n})\n```\n\n### Options\n\n- `console: Object`\n  - Must implement the `log`, `warn`, and `error` methods.\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> </td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"5d6e86a6047a2e2efba2c0d44fc740b67c0ee75b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@1.5.10","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Kjgii5rK1g9kpLCUGBeGIqFG0IoAMe/oRKzpIfNQUyegJ/Lh5o9lmbmpTPMBWbP3gZDFfAC3081llqxg7QiqCg==","shasum":"9b23af061e8171e95503e1932cc07d0cebe806eb","tarball":"https://registry.npmjs.org/react-query/-/react-query-1.5.10.tgz","fileCount":18,"unpackedSize":612338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+PTCCRA9TVsSAnZWagAA5dUP/jyahmKt0CnNqL9YQ9cw\nFZZl1psYOpZsigZ0DtvZfL95Opb1QZmJBgy0P0Q3MeIbDfSLCzwiDf7DApTZ\n5fuPcH3/t2A77G6Y4g0KAF8SfsCT/UWbtKGFbjQkt90ZaprZF78YkmixU3Wa\nF4/BmmqTnTP/7wUVjBW3ey0f9ChCOVpjgDoe8E2IfNfFW4+ILOyRcb/qg97l\n7LRwE6t2ijQF9NH7jpkCK/fM40o6G379Ih2iMa5akf/0om3Y7Vp6qqiNsMm1\nnVylpEKu2ahE4o4Scq+NFTZK4xV4ZmCE3tGv81jMODFFTVTv+6ml58gY7EQ5\nuv7xTc4fYKc8krKkywycFqxS2zcjVdMB0OQowVZingDrhpJiPxFSSeetec9o\n73msLUh8ff4kTn1Toq1RzCY76EP74Se7swV5fnOGOCv8zm2JrhabDF0YoHLI\nc/TtnSk6M4GbIpboR4LxqRLeZSvoIYWj15YihNDvC4xY2OM5A5JrKKeI1Y1T\nLPZWWShkhdb8XyCIk1hppYKDV9rmEQIjYNnYrxwxE78FUCDNFiDdmnjBEpH7\nxaUKJuzB6Sh7KTZIttl+8lCebtn/KbuFgmQg50hcSk0qpbic452mU2GP32/7\nDRKK7nYchbFt21WadFAWgxy3W0dZLj8h71jCfu8SrdLyP1/+G74bPidmYkyv\nD2Q0\r\n=60K7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr1CrofkZmaHNAvea6AKLgBBpENk0OQd/IjWT0x7WBZQIhALmbqti38tQAa9E3n5r0lsT5IpRPXLYpdNKjaTGFkBNb"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_1.5.10_1593373890149_0.45954761225422947"},"_hasShrinkwrap":false},"2.4.4":{"name":"react-query","version":"2.4.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"75274571747a65a8706da3f8f63df79da912dc54","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.4","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-rDGMj4KHFt+D83Aq076rmAZDnfsVcArrOYQusO7EgIbMa9ioeppJ/fdSGiGH+tfShB4o+8xpKBxpHFjuLnitQw==","shasum":"31cb61738f2534fe51eb3921afd3a57abefa3f07","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.4.tgz","fileCount":17,"unpackedSize":614775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+TCwCRA9TVsSAnZWagAAjC8P/0K8FPUD/cdAyGSfUE9K\n3IoTpt2tSCIF9FDz0g79YTkD26s/Glu6qaViaWtYFhrc79Jt5sifJOFR8udE\n0uBp1BXmPefAARA4lGy51HVT8ZUDiYCiWnR9oDm8pIM7q9lqmQimbWWfUCJU\n1FywsyrhvuASFUvDRZRaKJGsbSdWj9eSMglKwv8r2ssdE9ulpzC51bNHFLOI\nYz4Dnp+52aojIORnrvpxnMx0Z6CDPsvF4qiayybKXwIRbns7sJmWEmEEB3ID\ne0kfjG8wXE9AMvgUxAyV5URMxeBxM/aYsWSiZ373tNUKduRIX8GaRky1SF6o\nV5VOmLzDfJWesuxdlZUANkz7CObA7SiSmxEWTTRcHOfW5p3wnEOC6CpDTOwU\nv4FttlPfxmJLXL9EGWwyH34WCIyJdjfxDqDAfLsa0EbFb/+lg4RcT1p5Dd4S\nmTQoBlBUuKXVyGHpI3i062n80BzUx/zeHnG2sA2aateb0mdYJHO0tqzQ7YcN\nnSMCxhik4WszMB+Nzs8rgPocfZjxcwqCMOsd16OfeJg1EFp02T1ipVAXdJBd\nSjitsxLqlE6/EquKoJBGtx+cFL8aX3q9c+AwXn3ZYO5vWdE0IQy2ZR0A6zLO\nLC1x66bTW1S7ZOSGwRYPNSeVeRvS/iwpT65PN/i9I2fk7JnlL3tbXs1lMN/G\nqx3S\r\n=DUjm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDe511YbYkhdS8BbfXqhqi6IAJxfRbxTH1pvTPCZIW6AiEA6opFTeGhANbHmDAnP2FBhvokVKEJ020ubNsl/F9kil8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.4_1593389231712_0.3210102106227466"},"_hasShrinkwrap":false},"2.4.5":{"name":"react-query","version":"2.4.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","postinstall":"node ./scripts/postinstall.js || exit 0","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"63c32ec4ec0681dd5887bbe184b2315eacd096a2","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.5","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-q1OLp+FcME56m7o/ZPjbdx3VRucWOAM+S6oJRQEoxTRckUoZTcW+Ep1xpWUKes57CNea2Je5xYSc9nEg5VxAmw==","shasum":"3f72f8695430c5c4d9dd4a84fe2e6fa4a3e68445","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.5.tgz","fileCount":17,"unpackedSize":615528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+gyGCRA9TVsSAnZWagAAIBIP/jWN2iWrU56kJ1T7gS0O\nWqItmP2UWNlRIJqSkGmqlfY4zecQvtDPus1ovi0Q4oz37qJ/cs72HqxghyEC\nUiJdAu5sSpmiTuw4GV7Q6JjgNP/fnpHl7X6gofSelETTN/BiKjdbC8NyR2HS\nVQZ8MpxdkAsVuHWXtKd+LV06fkqJJKHgF0KjUzyOuiG2uYQxYDO6kwUmcfS1\nfU5cS4g3dphLaYBCB/diXwk3D8cFiR0rXrG/ST3Bo/zRK1M/uzNJsyU3iBOs\nIVpVuRBWnsPX7ZBBHujCrasHQtXJGuSLRdTuJwF5zBuuPvlKPlhFzURh7WLm\nXHjpuLts+G3i/Z778fCBKhiqLuUvU7uHz5eHmKsZzLQXu/M9muNFw2Cg3Bjt\nHT+oGgoe8oyseAjNTd8vnXk/PpUeAGDzZw7PXfyTZJpt4MtWh3ZLdll0A5y7\nxsgr4gcihSgcfOeQ4LTWNsaoZhiD7NCQU7GB0zT9WmR7ArcUvuVtVBXajCXB\nwkrTNgNf3QWWNR7y5L0E9UVI/K2pIhyYnYP0s39+4JpUOZTrHuo0PdwmzzKf\n5JnbXeZw8zDzIN/EfH/bkYmTVPa4P23eEegHR3s/iOiRfJhQA+y4YfBdqEGr\nxrU6Nm7gE/gJ3p6p+/FR7h/7os9pCZSFY+V0oaLLO4aaq7Y+kPRbq6RkyMyd\nMPV8\r\n=TvZD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4ILiMFcK5/nHaDIZcwNYjiBkn0JEfk95RRW5B8WUZFQIgElRpMoWA+K4+a2EYzSzYpKzvSy03LPzGW2blkF8udEE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.5_1593445502536_0.5627395166097695"},"_hasShrinkwrap":false},"2.4.6":{"name":"react-query","version":"2.4.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@scarf/scarf":"^1.0.6","ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"a846524d6ad2ef96bc6f7789cc137909391b74d0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.6","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-xOyXGZ8QPAMP351H9ABKIaVNZsF4WzZWBZc33bSQdKHeiT6Vhxob21H3h4zJNOptwsfsEHCDNxXqroDvtrXtRQ==","shasum":"6ea1157fa684dcd3362d044006777ed6b938af1b","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.6.tgz","fileCount":16,"unpackedSize":615417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+xS7CRA9TVsSAnZWagAAEnIP/i9euKKZhZvT1fopmDim\nt5tp8UzD+F5jzjPpie8bUZZ6fojeIhjs51gXmUfBIsEss8q7p+Scz2Cx50qW\n+9/XvOSGQoqpWoZAM3WrT8pMI9hkGgDkdK2tQEItstqip8xmIvb1eFciyqe5\nYpdr7/td0wpvbcxOZVratHdm6yCD/bPRNCa6KCHcHh4LbEmI4ZR2nMPVrQdY\nnAqsk8lDkQNR9GP7SApz1+GpM60calBSVigLkXgOKo1CeWrvCrIxinMICWuI\n8vWcxDaVMOZBSL3cyv00xgs74W7qYRfQFNZsPDloh+S2IzWCGbwrWk3KftP5\nzcgO0gl1XoJX0VVW3ivPyuJB4NHWs9SqUg/E+C4tZ1gP6sqxZ/hwhfntgIYE\nJj1PY1hq8n6B8cjkUnRsN+itBD332J8sBMKzepglOVvof0JegiJrn5YKl/km\nhYRjr6xL5VIgIog77jP5tKX56AipLdqe9anSO9YWz0aqNcThOJr4k+MgsJ/d\nFyCKLjQrJ77Xvd9P8O1vEKBjLCrSXnrJoidK3WyQj+N3MccKPSjHMJ/Ikjq8\nd5/4hfx+nAgfrc59tR69cK6gzy4oP178zHyRs/lzjEsHzpYKFpmKhCTanuRA\nCOo0MErbmid7/62NCX3pq1XHMVt8NalOPr9Qg878Mo0RqqjvTdthfHnEmTsW\n8cBB\r\n=IEJz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAubWxrW238qUiaoGClQOUyN0b4y77p/e1hMgfjrNy7fAiAfTj02YRBFlz2NskRxHBCsa611Usj2npyWF5o2X/+Xzg=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.6_1593513146969_0.954647413772955"},"_hasShrinkwrap":false},"2.4.7":{"name":"react-query","version":"2.4.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","prepare":"yarn build","prepublishOnly":"yarn test:ci && yarn formatReadme","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"f5786b163703b1586f9cb0cd83b69f2976dbf1d7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.7","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-xEKXfGV7uFwqoMf8b/wixTnG8nicdWBwOOPmDJVeNwecTz1xBgxMa4sf+3fWL2Wc48rjzTla9bixB/wM7K9dTQ==","shasum":"c70cb778d561569b5a810ababa827708107bce44","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.7.tgz","fileCount":16,"unpackedSize":615472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+5fbCRA9TVsSAnZWagAA+CIQAJubNovqWn3X8WKCrBK8\naedXgzKPOYZ4Hxf/2r1aessJji232IwaAJyYYu2EJmZEPYeC+p+t0GNalp62\nmZc1MdHWoJM8SNs3qUQU/2pkhiTRE6cPQTgtKbiQlUCdFPR8z4KgpATaazra\n/y4hK9qVjnGaWyi2MX11iTQJrGJeBPJpfVb8MACVQQGEZp1LjGEhbt69pshY\nqD+VbnL7I23LV76p914MPw2qkINHixgLY2k5573AA7bE2eSEsVMARDlB1qsI\nui2OdyhnoLrrYSM9pu189JYyPPKfY8+Z0fk7vcYXFX3O1xyVMjzhWXKMJjvp\nJZFy+X8KXrYnH63IuNqPvrTsTcvh8TytPR7XmidCnDbW/IG2Sy4xkU+PThjJ\nXshoBaUx5q3TiEGo8m1V8eZMeDTZig69JVhAlpgD8d0L/Vcef7chjVUcKEhJ\nvMDSJrxSY7qy/RiWn7YEJ36bL/SUEc8oHxkKAmUgJXa9qx+vlznBZBx7h3yk\nVG9ytq+DDiq9+iM/v8ry9RQVuF1WLsNRpjoZJnpiJJY5qE2sXn7RM1DvTfFy\n2LqhRB/ksLhrMsMZT5RjO27usQ7IqbbSewyQYWTHTtfl7jsqLsv5wT9l9bkD\nof/bZONlUrXZu1sWjwektEnkmq1dk0c1EdJCL6FQyrUCu8A3x3RGNTL0uIKJ\ngwAg\r\n=TEh/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHb5S5Yef15EzZb+zjuztO0trNnyPKpQGb/SSVQm0foeAiBzKWDZfexQwIfW5y7x1K2AVxq4Zq268sEmxa9VnJX6Vw=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.7_1593546714300_0.49634092076230885"},"_hasShrinkwrap":false},"2.4.9":{"name":"react-query","version":"2.4.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"cecf521bc0a82e0a5537ff38f9c2f8ec17421d22","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.9","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+Z5+Vb3vd4zt9Vgi0Q5kF4m7bxq6dhWflRyA+isIAIU+ctgNOn/melCo+jdQ0pIodEWAhUzd+o3ZysFmB6fspg==","shasum":"8ae86f2e09b4496f13ed1d6ab5cde0fa63348485","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.9.tgz","fileCount":16,"unpackedSize":617155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/O3iCRA9TVsSAnZWagAAeQoP/1sKNx7vppdq0QHcjnUQ\nxVDF5PHXLV5GHgJ8CrQrRu5RayaROskjFns2F+QIsDGL3oTKLDqJsE6pPDZ9\n3g5zpzTG16oQNMhBFnntBGt5Yotx7ZXAt7edILaUGJhYI8DMTvFYG7qo4nGv\nzyAbjKgbfO4z53fclSshLk3SqzOrCCav4yNHLcS7gPVAeudNym/MU8Rij5H3\n7nAlspTeuu01rEidQrTZeZL3fi/XqHYGdgWNuYXXVTPht3MKurj7ANFBQ4/9\ns8uip3R6UjzcD5M4Bs7nvnkRJaPb8JyXuKSV8a6EHH45hSSSNMoephSG0j1i\n84NmDi29Ukl6jy6Lncjlo636qjl2fcqYqarO1bRa2krdktHJfrIXPWU2UaPu\nTOaXcWhi2MUuZ9+mg0ygqox93WuuBdZoJkcZVlLcL/+vKZShauWmgKzKYMkS\nnfn9tBaOpy7mkyWkNVXb1OiK3D9grMr2cBQBB75dkH3q5XoGkExokKSPnAKj\nIiqWGV2pFtwaICqAchzOn6QIEptSCZPMrL/egkHw8gqWOt3q8HOSG4rUWoaR\nCnN57xTsdwpY7DaS75/xoTQKFkKszjh5txGxgysXsr47MioNl0h73Ygwm9RN\nC/8l5ThaWBk+LMhOO4Im9+eJJCp2hVuL9k6y0ceidtF50JLIeBI9MIfSDY74\n9Ex/\r\n=BcSV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqu1R8EvmG/i+6qNYOwf3SOXuzPQ1F8jhs0d6/6oMAMAiEAtTVko57+FifN7QQ7Bo8gMsGgfga74UlUz/mM8y9N4rg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.9_1593634273603_0.6391063734032576"},"_hasShrinkwrap":false},"2.4.10":{"name":"react-query","version":"2.4.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"0b50b7564d061c453a3da490e9df9b5e7d84ca01","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.10","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-e63se6x7cSywBnxqQY+1oMX/+hLPQ6KP0ctQa+YVx78X5Im6roBBkTNJIhRrqhewiAJkSwGZ2ZofspV9HiMpOw==","shasum":"74b57247f75ac88781741e48058fc789e96d7e22","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.10.tgz","fileCount":16,"unpackedSize":617156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/RNMCRA9TVsSAnZWagAAxRQP/i3lifbbecKuiISvT42G\nPFyhgmCgbJX2Wxo1OsujMDKOBWvkKaZ9Jli+NJ51DYkvtqOzhFe9D3d6JFvB\ndd31A/q9yIM8uCRK2kJq2XYvYSCBbNwqUyTSqZEoAhtYg5bzOIGw8vFZccQb\nr8JYgmvLxaWQstZkJD+m32J8g6wPrzCz+Ijz4w6gyXhlii1SGJmjO89X+Is9\ny5Evu2q7d/Y6uPcksDHqxZhy9b6MZYgYIregyHRyCrPxy4giM6SNsLMx2H5R\nOipqPW2290dqVsO3tMZYALJ9YL5KMHd9H9TOGQqvIYytQWJo78Fq00sP/w2V\nIJoXowvwbNGKZa3/np/vceE110aF/kp1HKziD/1hB5dkVnnk7YsA6U55CmhS\nR/Amy9El9pAl9NP0vzdGrXjLXPKVKOO5j3yQtdbca490g0J4hLwBToE5lhTR\nBCBduGGUsvAJIvWDEnH7oJ4yQFWrB7zKwkuIKHj5dEnHvBCeRETADyeCrLqB\n7wo9kBWv1ZH0Mtvt3ICvJ/3hGS+XheM69sEH0Len/F3rBZSkk3/wDIEt7aP2\nXonLjHXqsFq39shNrpNGqa6io/RY3eG6P1DOR/am0D2E57so4h9BIaWr/gN7\nOKj/2MJAJ967F2GwBh9cS6cJmUqF1JgQfTQzKgo4Z/Y7vjo/FeYNf+1s8J/q\nLsJ2\r\n=gPO1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEpPyAIuhKXKneNXzEfOc0H+TBi0b2pAkvz4aoskyl/VAiEA55cu/NxUX4xEw6QYM7whEawpgmeZQ2PLZ52/Aj3jgRc="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.10_1593643851754_0.20160291615386905"},"_hasShrinkwrap":false},"2.4.11":{"name":"react-query","version":"2.4.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"6e6ccfc4809d9e81b563df380be557e3834403ea","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.11","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-LpH01/Xt9bu6sEqne1YPnIy9HhWPVCqGNZ+82iBOamx7QxricgDZahikyFDqx4mRN4UdhUG3Agx7tGeRzC3n4A==","shasum":"442f013c7ab82e7b8761bff840a05eb3bc2eacd9","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.11.tgz","fileCount":16,"unpackedSize":617508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/e4CCRA9TVsSAnZWagAAyA8P/31g/w0G6kf4Uj65yhNI\ngJrMDM9/UXeeczmZVbu06K9bEHPNDeDFOTCAiqHhKl87t/g4jU5y72IYEs3H\nK/t6+M44JJwjfEH4AxaTYnCtg030+zdITXT8SEs5si5yAP5eWcvmoLrW1GpK\nHmoikCHfBE/ANzcFsLBTUIe/Es0o4e4LRekmb+eYaHWAeBQxqN4MuMjzu6uU\nSQJIC2RlBG7TogUZfXT63hD8CAqHRGnOivl8T8Ag67c8yyac3t47jFWwt4Si\n6Lmb5DFa2APNNN7Cu7FbTE5+gTijLKTpFPxE6LajrPnqXYuk/SHrhERBtqfo\nqPhp5NnkVjdjjrhonkpOCvZYHJL1/FdRXxfb2iVx02DQaTJh3o2qJplGQwwl\nEJNC3VY7HXEGioAiscT8oXxnd4PTDE1LWJQLrsvrjaIYRkHGmBOyl5HmoQTd\nN60o6K6QWtuFLcdhnDqsFExYXb4NP70I0Yt/qxKIM2q2zBTww+aMf4WCLBQQ\non0swgePN41b51YJMO+CUNbNnBc14YrZfGko5HwJHnNXDy0RWA/1Dn/5CQFR\nthLDTVQxtIoPZa/1U6Kg3evIaFIZY9jJ6O9zvfCb/p6l4dAPfTJm3slZ9an+\naK/hhABqprCQveEDHmKxBfcgY8FN6HQbAjic1xSkZUTpw+aJZMGVRDZteJZz\nJMJz\r\n=+6bv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdl+XaIP6OAgtElynvn57lb/my4M51va4LvDO5yYOxigIgYIXYttk9LSWsYyzjRaSp+t479eGV80au+OewE6dKZw0="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.11_1593699841158_0.6454658684292855"},"_hasShrinkwrap":false},"2.4.12":{"name":"react-query","version":"2.4.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"76bb1115c950ed6d733fc8d7d98528d378b4b743","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.12","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-wFL7qD85FmNM45gC4RjqK2RsxCFg7W/4ZAvBlWqBq9GWed0+mUTqkE+7Q/ZGszeqiStnGcnyf+Qyku3u+M4ezg==","shasum":"6ec75c5fe5e502eaa3fe85491a3bff1e42d26ccc","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.12.tgz","fileCount":16,"unpackedSize":619441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/nIeCRA9TVsSAnZWagAAtosP/3mQWybb/YLMruEAvbox\nMqm7eLW+iYqS/LfwSVZBnFV+9kBuiKdwZPW8vMwQEShhpmseTgcTDggCcPP4\nLteEK6Efy4dQ7EHoUd8vRGNxAQwVCshgeS+KRWazDHlzINxvCpB6nScZrOcs\nNQuGDRwoqVT3BlpT63BZPQwycZ2uXIOYxiK0AXvh4duwb/FmOEqLVeKi3Xlz\n3q/3bYRXBB0vwjrt2zNb07Ts7rS283SxQa3JLDBBvIqg7P2eMKdqoi388hhn\n3TCeDR1Jk1fMcUuy8MxcNw+KQ3lSPn76dQHrPg8DrgevpYR0gKZiXHYNch0Q\nEnHPnsbvHI9JX+GM3kP06Ov7eslBwRcdQxAuSD3IeUfloB9lrg9F9FRzJp5W\nT0kKgWEUPNy1h7DwgMyTw/3PrWKK/sAzIhvp7DG/qkyASmF+ESEG76wrrRpe\nqM/DaT7J2w3kHdELHFBNfGAKR75LBxX+/R8ZxB41JqoG0nlT2OsvAtmQlR46\n5/cxosbddp3Ra7AtV2Ja0gAnUv+frdv5J2e/V/j1Qwxx2cLGJUqxjiTdifOd\niN1fmMcXj+ZLrFK56vgwmKXgdqhp0ChaeWrmfgr78gcIvTZ07prM+SqjYAwi\nmc9okrQu+73RTAjxpG12+74w+zhqBggHpYRdQpOy42kKfELoaxMTODlYIg2W\n2ByB\r\n=zqYx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLkArswswgJY3+LQ4vXLrMbKJbt78JkrBnzWCkNnTBiAiEAh8s6lv2vtfdl4Po4SMqUJxIwcsyDliHsjWIk3mnt2K4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.12_1593733661830_0.17604150834537702"},"_hasShrinkwrap":false},"2.4.13":{"name":"react-query","version":"2.4.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"3bbcb9a676f186d0192a186d133dfe769b1fd389","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.13","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-PFUmChSy3kph+r0c+oz7HgBiKi98bb1D8FeeBZ1qiuuGXUJYhWCvOST+lOgwtLiBbT1wdoNjObFC35jpHbSvUQ==","shasum":"478f4f32a8c6b56de0e7bb6eb3cd2baa812e1ebb","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.13.tgz","fileCount":16,"unpackedSize":619984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/418CRA9TVsSAnZWagAAsZUQAJiNZXd9BnIUBhlaon4U\n8awU9TRKixiQ0E1JJfB52L1At4qkoSvBzLWCrQzlMb/siavfA/0ldfugfZR1\nDmOak5kObo3yPusagCO0/RGAn5I20UpdXcwbSJdLZ1VLBjWe9dq/3tCyGlnq\nhM+6pqYMdh8A43Xsb5WsaRgyH7n2t/9XrlqznBRKAx6km/UPyZUoGf+FZk5p\no2LW4BgL9HWPT6QFSMWw3HF7bQR7d+hbIx7XuNsIqYtKCD6GhhMYTFcQjUuK\nTyRty+B4Roq0BkUiu5kpei3IgLpnHJv3w5G0gdbzgFzz8k6dIBW5G8UzRlzn\nfnBzGuFNkHaV/Y2+mmYQmSE/SqpmkI/QsJNrFYmlqw4w9UYIkw51DBgdeyKR\n+b0G1DkPcMCYC8kWxCJOkOOLBSayC4yedKl+JKznVqkR3AwGCJKi68KBqDqM\nhFrizOw+9ZxLhypfDCskcJ0nN2v/Fwm/uZpjN9WzAJQEok1Ozd1VEgR8ql7u\nf8KMNac3jbHE7gnsibobyDFrsQGIJFfD4AXiI1QzHw5ZlwPlcvTIrixavnWW\nS9o9jPY+tYoYV8lSVGgJNBQMR5ttmo3JJqeHcL+M16qllE+oARgwEPXMepaF\nHTIsrucV8x/ZEa3OwuE5PurHpEuSV56XOfcRunMyV9dsSfYOf06rph6ItE3h\n0rWZ\r\n=FdXn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFyipLiwV/KFOJ2uNBHdoMS7FLEKTI+1pVME35L5hFyXAiEA4Pv2gGGzCvVAmC7rQhE5snzpLaDVChU8iKKCv/r9p90="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.13_1593806203799_0.337578352208312"},"_hasShrinkwrap":false},"2.4.14":{"name":"react-query","version":"2.4.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"2cfd16413d0d076a31e756f50e8bc18d68a48d3e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.14","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-yxLMKZ6ZOvOg9oCfzUxcA0hMivWHrpvZxhySTIn7ED5tUkiewy5ogNpFW3sHje33INO3AKgFdB341mMjJ+Gu4w==","shasum":"26c5cb663cd5ae7865204e31f8e21554ba53c69d","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.14.tgz","fileCount":16,"unpackedSize":521581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBcbnCRA9TVsSAnZWagAAYaAQAJY+///mRnC1zyEqgJoz\nvigA7dL7OenN3uvAdNIPGlL3hw1d7GRnhG8QJJCzrMVgR+U+eoqFbQEcgUEl\nhoISbmunY2pZYeYGk8DfB7PlTvd4t8jc2LyrtmcUct/HAFgkqI5jlZe1aCYz\nsQpL3Ve9wEMUr6LhXgoWt4Asi3VQhap/Z52bbDlc0hohxLaJvglOq02NLqPO\nhQokEMJiCgmWY6Cq1X/0LKK1Bji2Z1fHd6+e8uUZQu//ngXiYG70RNMjYzJS\nN85YR2YpAg3CEaR+ihfe8rHFcktUDfjE96gjFIF9xwzgfaFULcRTzUJ3ZlSS\nAUuBXKZS6j6IFV+UtOFCm0O0dAFeqtI3BSYbSP6OSc4PAiMQaxeoi6jNRrN0\ntRezSCXd8bTu1t0tUzq30IuAI54+N/QpkK3sQ+63nUk2f6YFo0Yb3L3Jhwvs\n85K4tySUZUeiPtGxLVl2m/gkHNK0N1WhNsdZb3fhpM9GBzdMRzBTOtDzpVhy\nGPaWyIxGVlX0+tS4uAIZ9mQy1E7FNDBr0cIWMbo3vtYw+K7vaxWhTsyL/NM7\nO2esR/wK8Mp5+8Ol5EZa25KZ0bPicnhd7twZi676IESeT3kGSQ3noLPW6r/B\npwF5NtOkPTxk8NHBOE4ZXtz4q5cXRHSfhntnWhjviF7C9jd2XS/TxgyGvja3\nd810\r\n=C/Jv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRdzig4gA+cS/G0ZwkKVLwXaoC4ADor2Nc28IDsw3vXwIhAM48C8+zPL3p7RrnoiwgRmMyzhLDIow/xZB86CvDFZ1G"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.14_1594214119008_0.5696823796278205"},"_hasShrinkwrap":false},"2.4.15":{"name":"react-query","version":"2.4.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"52ce234d4f224731ce8bb5970c22064a5078c387","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.15","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-9z+JqhSCAx3vEQH85AoNgbr9zgRZVPWGeG9Yzw5jOWGmeZ7PRkgE2llIDfQjrZIEhZouX0sGYSuUxNNYXXvr2g==","shasum":"359b320e9943d3b8e6b1f7b197b005156ecd47e8","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.15.tgz","fileCount":16,"unpackedSize":521978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCRWCCRA9TVsSAnZWagAAOZMQAJjbJ2sNbu7+ZSsUOvQj\nVc4J/t8zcYuXKMJR765BTKIxnxEA8myu8beIYGsxoXyl0fa4252qav5cvXBD\nSEn73l0tnKR+1splqoIFYUeLaL5DRplxD9wbD4IHgohGTtGXGHG11UPZ65ZT\n8WHQXjVHgBN0WzlFZos3Qwr+P3RRlr0ZPfKndWE49g0PYzbucD/+A7KqKBOG\nlfG6bKDvh+/8BIIXWQb99hWqqZjjovt3MhuwprkwS2uzof3ejlO3BYsbhzqN\nYeRBCnvS+zks9uphF/e0i3hKDcyydfLlbX1AdqqJ9zlfpswuIuFm9J9qcTbu\nCX9dWeWJDCq8xOrszwIipBd9CvYgx8SauR3P7+iPCNKsm4BqpNktQ0dyYHVM\nxc49oTs1cmX78oBuuhOdeJRAkmlvTVsVsGg7nylzXXbAYtdm+2WCTwGYU7L3\niB8uWgZEV000FBq064IPhNeEXDnTs8VD4xhroH1NnnMt5TgmxofrWG7/oUZM\nHMx6/THvfjv1eQB6UPA/6lFI4LnbjIP76VPkkeRy3/VZth7/M4yQpFY4F2kC\nDu6Et4oOc3QQpymL9fsXgn2CCyvlJuBNcJQO/74N1+0iStTVJl2IguBKuohv\n7xOAokHZBUohPzA6sUHlOr86PdcKN6x9AefJ6D/0RzyjpgQ0dLvLERj3icNt\nCqcH\r\n=ZkM1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEt/jhtKq4R7VWuBTN6KSqfjtDih164+0G2AfXBmx7CtAiBSXrPKekWJabcGPHrPPK7+I1rluAONEeJ53o3rLXxkjQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.15_1594430849778_0.6258506580270271"},"_hasShrinkwrap":false},"2.4.16":{"name":"react-query","version":"2.4.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"2d0d215944c5b2fb2e97b56b33d5e4aad121aec6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.16","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-i/lj8DbWRvgyTZuKxhMNa/Ekrz8bDKqqFg2jAQyZyN66qmAMmnAd6AA2zlLyzfYn7MFx9UVts+DAcaTghO+EbQ==","shasum":"da81dbbdcf7bb8860cda359f1438dff6e7b54a39","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.16.tgz","fileCount":16,"unpackedSize":522216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDRhnCRA9TVsSAnZWagAAILMP/3Ti//o+WtLizXdilngR\nK0v+XnA0jp8hBqVlcSRK0sn+IL1Pu5+4BkRk2ScuD4Fhekt2ilOMcFBK+x63\nddOnZFOsJGkjF7KcDnEYsjV92NZGqY4an6cENM/SaE+RSAEFLL8PK+E+44qN\nzO1R5szfcmKrJ2sm6E5mCYVeSEs6B+dKRM95tdB+uPamlv/Ya1BqpQMsffVX\nMn6uIkTWs2IcFk1E5/g4fYpd53wpS27Tqs0H9EV9hhlN2dKKdiHJspe9mDY2\nuq5XMPbTYeSVQbr+9efBAw3IkYeQ/ccdRzIjtiOBt2Wh0H/+PEhn6/ZaHBuy\nRyqSfI8bA0sURDX8RXmi6pwk2ZVVuopDbC5xA/eVaqc7fLp2FjdxnbTOg69F\nwmovjrGFPv9ms5Nfdvl2bTCVGJ+pa5NVx0ANiRvRble1oSm8GP17HAOaAxeA\nNcL2R22GSVAA921DXO225zDJlx3jWvjQDxlkCmhNo4iEOkqJWshWz9F+TO1E\nYJ0O+kfGB8I4+5PpuM/HQfHww1y+yOa5Nx32QJ/tbVNWbvQyBLdAorPb41vr\n2dsrzXJDlh4E+A9088olbREGfW/zOpC1W4qNadJ+YsMzGXx+l9yikgG25kor\nzktbfnKvv0nz50bYRavYkg4abaSyJSbzE51D+AA92PCk6vE8VRwgTxpYNaWm\nC/Vr\r\n=GCL8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT6IzGu5tzY2auE7Gz/emmt4Da5226wk+uHvjKZZDAVwIgOxOp/hgKsyG6ptxe9Z68ivORe83KH01nZ1InDAR/vUw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.16_1594693734230_0.6044905807931145"},"_hasShrinkwrap":false},"2.4.17":{"name":"react-query","version":"2.4.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"142b995ea451eba661e7a28f943d91984db61f3c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.17","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-gijWRVwDjEKQNkbv2f803VbnAtpJe03xm9Jjqdt3DYfR0Ssy+DyMzk7LEGqlMjlCTDjWriRlOcBRTdcYn70ajw==","shasum":"4ae342f51e28eaeff4e9d692548a8a3d10a91c3c","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.17.tgz","fileCount":16,"unpackedSize":522258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDs/VCRA9TVsSAnZWagAAiJYQAKDNowDp6uhYdb1LEgsS\njD5beozYwYV539CrtEO5aItBph2MyTkBjeLmeGT8wJjLyKIoqI4DF5Y0bBUu\nTZqtvHCrCut1gneF67Pt/BU7D3vxWKoIQqzx2Ir5sIyWmBYJHI6QywlqOtJU\n4Y6+UfZb+k3+u3GyGasDrahLN4dLI1IarOSkvaYL4lmSi/Q/Yv6iF1CqAtyQ\nK7cA1YGmCI2i7NHCybB7wBnC6TT+a7u3sAffKpTW6hyDo2oQgcmSyZd8+2Lr\n+Tk/qS5TDLsoAG3bXO7xNB9/8isDrlWppGr5OgnA9gUXNUzQQlNlCVFdfvGJ\nkaq+jnFTKpUwCIsLWK3GrERxWT/6mzaKj5w53U4/YUhhFXVZ0pg/PYohctkc\nrTShV+SawzroMjKkYwivQ2qID0eG7rhcPPqzWOSMsmGuQE1iqHmLbgNpP39s\no3WVfKnw8bhJwQW+wRTDaGdqygAo6+Vp1lvSmUhBlty6SHPcengdamH3uIr7\nFzXcxtp4T/Vn8veGcwCXSaID78if1UMiH+OSuoCOgh+uxLzpKBd1pZjVAeMF\niUQrA5EToYxEg996vK4DVEAnqaOvDeJpgtd2vwlP2jgrWEuR+46Z+IB7ZRYZ\niAHhLs/e2CvZh7P+9nBlukaf57tIdZUvExSADkCVdCodMP9EC+Y22O3iT+nT\ntV/f\r\n=ViH1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnoIbM/1OlVQxsLXdRf8RIU5qXJaiRhIbymsG+gEenLQIgQemqUryt3fNXsQYfD0tIyGGSgifeXao6ppAKN/cZSbA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.17_1594806228447_0.4443949134847007"},"_hasShrinkwrap":false},"2.4.18":{"name":"react-query","version":"2.4.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"67394db8c4b7645bcfbaf9961c19c721bdc19777","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.18","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-V/7CefZlsinuYUr7xUgXPbqHYiFKz8MzbpyDMWa/lEnQfvZO2piRzpM1VKjdBZKAtKYoL6RzJMUYtu8iB3S96A==","shasum":"d414989c2154ba63edccafeff0c271f0c0173fbb","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.18.tgz","fileCount":16,"unpackedSize":522275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD1mDCRA9TVsSAnZWagAAQhgP/j/5tV2qY6UAnR277dmy\nBPrxFlCrSJcZ6WLr8W5B5rQzMGdVzvNxhp9SYBtWXwfqKbS74CCW9HCFyCzV\n7yeRiKN8KVeMq2nBXRCwngbHrjU7UOEHhVyCpnE7YxVc3tMlWcl0sKAOSMQA\n94WxBSasJ8D0NrS7UC8xSLZQNmd5KZ5AABRfTcXxlSlVOZCc2HwZA7+aY6wU\n5Mtru3AjIq7gR1phKEu7UVY9bi8CC+IVOH2P1ukyLh3gmzo/u7kn6iDnBr/g\n5LVnekw+rtcndJzXK09MrhGka3Movxm7jb2jmauwZQQL+27zE/DSH27xtc1Z\ngcxhP2U4Sk011ZOxU4irSSz4UAe2nD/y5JGIdRKmmCy4AMkyzruqNTfg0nLh\nblxYRgjoI19gFIv7GjtGiW7rtm2+FMU19E32QXxCW9oDABgsMN+xJ0lybAT6\nSQZ0PaIbw/KcK6tF1zD0XgQgaYSxUX1Zr0jXBMp0YE1gtw7L7yYnOmMVUQEd\niof3iWdSCzg2KXbDMzL1wBKS0kmRhG2XO1yah3KeAtUruF18SpQhdX2ILhlz\nttfyqDfl+wqfWfHIfZU28hSzGNijb9J2dlr9EfAeS5VU+Qpt2lKVx/l9KiVd\nnitdj/H9WPsPpBpo2as1SphdDkhfsP/uG4UWxxC2UW6kbAK3EvenIFkytDMj\nmrKX\r\n=5Ab/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+BeThQm1RnLkBczmKyu4LGI+m5pHcKKe0g4r6RStulAiEAq2FES01hTCv0XniKoi9Aj4Rc4Nv0aK+aKgMSwswN4Vc="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.18_1594841475033_0.5527388330797773"},"_hasShrinkwrap":false},"2.4.19":{"name":"react-query","version":"2.4.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"b44a33c01d03a0a41da76d61423ba295f6f4bd07","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.19","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-WGzMg1JW/Qy/4Uu773laaaRyVb5abhn0xDmFyNDtx5MpDPn0Y+szGPVJZMKk3vU6SzpxtM6UhcDcwus8w+A/IQ==","shasum":"a8d1602f10992cfe6c034f4bb03c2bf240b81e11","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.19.tgz","fileCount":16,"unpackedSize":523836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD18vCRA9TVsSAnZWagAA0b0P/jJvO80vKb+FtBhgX4G/\nQgtfHC9CQtp242/uqVtpgVk3QDItQePIQCDFei1J/6l0vTKEzMOP/oxI+Y0e\neZBgKWk8xeVidUSuFc9sTagQ659w5mEuGs6IWDPplcXyiHPQ3eojD+CavzCk\nEAJIV+xV7apeY/sQlOPYrveua4MbJ/yI04jKLahwtXVVGVDQfecxNaszq0Ir\nASyCgeIUTBvFoeeiTj3aPLikzJnwYg8lHPlW8SJ5vckpDBZD8+TKR7563gVc\n61KdaH/vpwEG3U1+CJdihLCfVJ83/MK5eT6FW7C62gp0L6QYuh8yz1cbBqT7\ncA8Vjby3309RL1Zkld5pKM5kYfNXE3LDRRlG6VVr96rczwvaelHqvwHRaqnf\nJikhyPWhfvpVx5FRXA0x1mJhYdS080clJWU2Cxd6TARd2/MHpwBCLl2dPciG\ns4a1PbPgDmXR9bV0ZfIF5BfiV1NfVp3l31NA3lxx0WJaGbujvk2sd1X5Ajp/\nE5OoKUgj9ngHYoT5nZrVCAbUHL4EycKlAqqMFugAnue0XjyQMGapj9Kp5RRF\njgvSDEnKnHKNWEAtq5IksSrfTi7q06laLG41QWwWLM+0PoqxHy4YJbh+6Udm\n5vnoD/SoVfQQ6Bg+Ybje+STZ374r99bpqitG1WnYNRrwVLIKpzmH5WiGqWm/\n0n4b\r\n=kS4X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC2lC8xs9XVVxtyEqL93Z4ARnOqLaeSTQO4hlFvc+6GVAiB1n/fUtLvYoIIDcNVk9iVDUL7ymnLc9wGpGxjp6SY2Ww=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.19_1594842927160_0.18790593508942854"},"_hasShrinkwrap":false},"2.4.20":{"name":"react-query","version":"2.4.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"ba7f5ff9c422c02bd13120a23d2fcc80b6f242b0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.20","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-WDd/DmKffzHfLqkdjAfHKNGKSb3N/wmxfU2dBmESesaX7dlzSK0yyZbjgy80nQTyr33M1sTGqvcwxVn8MJjxfg==","shasum":"aabb7e127bbb532c91870d29f926f141bd18a9f4","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.20.tgz","fileCount":16,"unpackedSize":524802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEG5mCRA9TVsSAnZWagAAce4P/2FwpQt/OkbBXBE9UQWd\nDZQAFqQMUw0Wrd2hyufUVjpZarupe6g5MtkIYfL1zh1XBWE982l/G6PQMmyo\nN4GC6DIwBuqVDLcDiUMphmsPfAL/q5cXCEzsx9EurjOuClfCy9RVXR9UwjDk\nyfUcYzPlrQ0XQzesHWs3Z0do1pjnd7A57AxiwD5lrpt+SELvLm6S/wtsd//V\nHDxCNK7/+ozrmPRwunKYknERpjhW8x9x/iB1G+wjfGu+LSJcVACbp3F36NsD\nVi7iTqjM/grQeoSo27CWlJf1hAR4gQgGjlM+pYYRrjJmu+5K0VNC8t1Ww6pm\n1+0Y/R4sPVclikPofqU/hX3U7usl/YAs2j+nrO+2ooqy77kwTixf+5j8ibmP\nKJmQ1o2L3xrHpOf4jMUtxZpcHoA9JKSvlMLHOauUCQdBRK6QXRjX+NNXMwyS\nOzbTcp4lLKmhWseSksQENGCcWBp9qMdpuSqfeuyNFhWKdAr+v+au8mWxoiu8\nJAME2epJVVdfNHEqzreCr8h+pUX/W8TJw8Vl3qFVs0ycFowaLtgDck11/k4l\nlxvoJzaEWLVks3APjJkU57NIsULLMHYSU2I6+r255u/pXEwuZfhwo+hL/aLm\nY0x2GmCbSbDaF8JEswIUXXkuY3W23vvf7EfTYGci9WpApW0Zkq3gHIyleVDQ\nqQzc\r\n=61Mk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICVYRxwroLtNMQ4gUVWtndg/DUmq6asqs2/sSyrQQ2nVAiEAuZwO8DWPfACeIKFGvtkcjV52hQsXkvXlD4rEvUu5nek="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.20_1594912358119_0.24300608530613732"},"_hasShrinkwrap":false},"2.4.21":{"name":"react-query","version":"2.4.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"3e1880fbb495934e42f6f367e9818babcce17ed0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.4.21","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-QFtZOvB0XXrAUFARMC6C5Ar4aCzHRgR8ezMcLfYNfeZA1eGzISa9y9afbueoiA2aqstbg8i7LLPtWJ1UecA/WQ==","shasum":"5c59dd591e6a4061283aeb6b0ed95179e5070331","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.4.21.tgz","fileCount":16,"unpackedSize":525028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEIlOCRA9TVsSAnZWagAArd4P/iHgQXTFBrsLCdrSBpUy\nH2gnb9oJBz1n02nvbuSO4tjwPUpQi+omoB5vWY7qrmuzde/iE0uuPQaeaU44\nELeCJvxtTeqWZwaGap4ypRGFiPsOe9BgCaiRLMq1aFsJ09lNL1+kkEEwKMtg\nYEnmlqe7HyEgjZ9qvtjkL3cgOWSDNxM7g32Yh/VOpA2VFV7b5TN97tQiobwy\nc0+azIyVWDwYYOyy33gYdwfRwjqg/ewA3MfstqZHtdmvkxGRhXAxizXE7+V3\ngEhe1SUaPxal4ZjKXe7VcuHaMU3AfTuvG2ix2zkXmjc74Y3okgOvrE+5VdxW\nWaXqbUsNQTCr2cgAV9lJMebzIgYrdNTmcHXc+tA1jh53t+9q+vhUpt9PX6wS\nYh2d9OLt3VVn1RmcQ+08YMrWrDncDL2Wiql1RDBzIgtYXdA60ntzOHXUlynT\nq5z1ZMvOOPer1MCCykqJ6C42StvrtSg9S3MJ1P15i/68ckzFcTMkCl5OzbTm\n7QR/MuDTFmhFPcihEy8/XNcmKAZ0bQpgJsG05UE+6bsNzQKPvBGUN8Fvcj8L\nK0CzCp5ildWKL9q+jr6fcB4rx/XKqU6awOyKh6oSFtd3/hE8ElB8D+hX7S+m\nMurlXYmeIQx0Dk1Q0PFFqSdHMnucwUNzVczfKwHp9mCv7B6g+1E/tX0XIs7E\nTLQV\r\n=YdIS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCIh8w3vNzdQKps/BN9DVoemSUbXokQyV5bSdf9TIlZAiA4z4GTrOEjSmrQ/lTfcWRl3YGVXdRI4RxElaOl5LK5SQ=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.4.21_1594919246062_0.3228158699750814"},"_hasShrinkwrap":false},"2.5.0":{"name":"react-query","version":"2.5.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"c6e3f8eec523f5e5d3b410540597d25ca47f4400","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-YDzhsga9StTO47k+8vbhEogr4A+v7MGkcdxOSj1/N5kpjiy9SQxkCZVGyRhI2qVp3n2fRlUnUhtSnMXvwws67w==","shasum":"69c6b32b01e2ae33418fc46c6a628ffdc2afcba1","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.0.tgz","fileCount":16,"unpackedSize":525375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfESibCRA9TVsSAnZWagAAXTgP/jdApM2sk/av9PEAnE/M\nFZ88cOt3RO01798NuoarkU4gW/bkn6xNL3bAspTpiu3fRkwINqnbqb3uFnEf\nRUzRxfnA3Hx2L1Pi+xDJZhM9laXoPSw9Tkdevl95oERrtNdm6N+dlWOppIW0\ndq3ZosNbiK7FMF9qO6AwJZbA2VwsAD6rGKyy/5yaudRq99vN+448ptYWVWO4\nDgwQFPLpnJv0LLfdkDSoWPxB3eB8paAdMf8btlCG9aVQ6U3w0REB8i5y94g5\n1GIN3Xw9f5fLXYziRg+7T6pi2tpovwvZM+lTcHymNAG8JeAu2DZtAis6A9Xo\nUKKXvHwFuPk1kiKBVzhPNGS/4Q05PF0YEviYaHlxqsBkkpMYDM2BTuG1Nx0S\npOmniqyvfQ0q3tzBNPeu8/wm29XpuVASXTaLcSXFKaIhdgprg1H87A0pSIB4\nEKMXg/s5a/q1E8xae4pCH+3LqOPKNwHrUb+MhFPPmf4L2y3esDF/195+RkjP\n/Z/g74yYaiRPrC9YTTsqtscuxbCuug0YXg3HEP/tOdpeVfz9DaGnoXAr3/05\n9sq3DvvzobarMp75fWD3KVJtIWTMPCwVqlnxZzVff3jf5ErPxkj7UcXu417Y\nAk7JzwNtA8EcFJ9MUReUYPwYkrcHfqYbBqpMrK2MXfr7GNx+8kCj/VIMDRYV\nF9Bo\r\n=tc6N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4UZDivQ0WeQ07Wfb+GT+DRvJG8CNyrueETCLDEs0gjgIgYFx0gUdmzzJ4a+mij9jGcRwK35yMoD3vrw01TEq1QYg="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.0_1594960026474_0.5255968818963679"},"_hasShrinkwrap":false},"2.5.1":{"name":"react-query","version":"2.5.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"923c5d47955ef5dcdf57252e86f498a3702f35d7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.1","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-VziTyEGU1oHNHU7/uTBpX+dOt05+WEubrkl7paWSxxyAcHvLrNmtl88b0hXc76Rjk2XAxcoqtZ+EczYT6GNIAA==","shasum":"f4ec966567346b35d5a1681a1ae142162f4bb017","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.1.tgz","fileCount":16,"unpackedSize":525605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfESsgCRA9TVsSAnZWagAAi5AP/2Jr2OKJhctJi6GYKXEK\nWtVdNhwZC/cNj5gMXKs/lHi/tw4TLCy4nDPNhUVnZ6nVopl6W1C+MHw0InDk\nkT+PsqnENc6bEyq9f6mDGsDFXkSKT/+tLWxH8JqDfMd91AdOHavyOytREm0O\nv9I7UpqkQzVOUOjzTq9wQtuq4q7K1F+/kIt8QWtVsUplq3M3+Xe4OzvymVJE\ntkDkG9rHpRu/qUbZ9KyBQlfRX7GmmLHPcCFq259VfVUu1wUEkdmfHFFqCUso\nUJLJSX13NprAxaRE8sWYUfle+l3JZUyx4y2yWrOKttATKsO3QLYL4ADzkPt2\nK4FfbLrDsaFI2k0PLA107dRicdr1C6RUsqPiK4ODA/H27SsF8sQqpvgBxz/Y\np/HvkoluqoH3cYsryYwM1BQMzIyHk4Uw+FEmOrQ8NP5eOgb67h18iAHvC8v4\nW6FB9Raq/WcdnbG/EAlZL7j5cqHFlyNzrX/xpATd3+3JYrb+gzHLZVMBiqWv\n+OOnThsrR6XxT5S6CdK2TleEzRuRNTgPEgYhGqSr19LfnkxMmdy1yj29Mmix\nqDm5LXVSdSxXGuPU/1le/tErg99vyLMZGA1mOM8ufAHCvKvy2sIaKWwIeLCT\nsUnHwQ+4TCIH31WBpsof4eQuid9VFdsUdW26y3JcebezV+l4P3DCms8/KtgM\nIiaO\r\n=uaek\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/hddPz9XwsuKoALAWSA/wFjHJGsuIoB+GldeRrfONvwIhAMs+vbnRdXDZlrSAn0P4HihF24iXxFZUuikeT3a7/YUf"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.1_1594960671245_0.7585714808010031"},"_hasShrinkwrap":false},"2.5.2":{"name":"react-query","version":"2.5.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@2.5.2","dist":{"shasum":"89fbb0bdb5d25f2da94dec9d1834292b7139e7ef","integrity":"sha512-3Wv03MUPJC8s/OoXK0qo8XEDD16qLv6YDCTnLg6jr9itzlkVFMPOezox/j5up2wZoDqJ5IwpfzTAwDT3mo1C7g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.2.tgz","fileCount":19,"unpackedSize":526935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEdSKCRA9TVsSAnZWagAAmz4P/jmvAGCH6X3Q0r3xiVtN\nXTBQBUwAYfuk9igUDtz9xPLLsnbQk0SSaf98MNqjPEFhZMZTPIyWDVshsWno\n8mISgCPNkpGjt3QaZwcwqreyBSY9TAQzikAMSTTyWVEGUOeyOtfBgLPZ8yKr\nkrTZKFPPSD+NqjiD/TEpZsrFqRmoLijDzimNg0Cem7ZRWoRo+pJYTmXZKaWm\n1e+k2kqpHedkppeFkujqlneUEOT/nRt0yDHLnX9fYhsjDNEjCLfYBuOAj40g\nKvbS/J8vGi8BtnS979rCunoLlWeDi5i2yvniK3HVHKB5OqaaMa0r1oI4psX/\nEpFF6tsCWfPrGJzI+edKbRszGM2rlosknySj33ncLts5oppA5NdBVKlyCPiI\noTqoPnaQB1CW4qiCRNtcjSBAiLIxXtb3FCYFDUKouzHk5ITPDKq0krNryD4U\nLhIbW77yB2T1wm3AweXA1fmn2it5GCBeyEU64STf94GAVPf5IMWowGDaeJR/\n8RgmPCHpalAFeI6RpSZiOODn4eAI4SNHFNy/oXJykuQiD6I3FaLY1A1r3TJw\n6oRZA63cHviD+z867Vl1PJ45xyTrAI+rHRYtqutMBivLv3a2Fdql+/m9qEKW\nSMdeYGeJpDlJhsHzUovFMssur+iaU3yNxX7VNhyIo19hVClR047h/9qnJnyf\nPFui\r\n=vOkS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTKO77HEYQBY5s94/hdzHLsD0UhIQI91tSrMHL9q84ywIgTEUX8WSd8EqdSzFrC8zB20jEoCLTbmrdzIhP4u85BpA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.2_1595004042373_0.052603682066459934"},"_hasShrinkwrap":false},"2.5.4":{"name":"react-query","version":"2.5.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","formatReadme":"yarn doctoc","doctoc":"npx doctoc --maxlevel 2 README.md","jump2header":"npx @strdr4605/jump2header --header 'documentation' --start 'Installation' -e 2 --silent -l 2","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"21e160d86f275d4411e595c7813c1f428b1044fc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.4","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-gsg9M7eIYjMqrNM8Gzzo0cdXnkuM2git1hWyp9tA9/B779zZQ+HhL6vWOIlObX3gsKfIKAgJ0SKUUn9NdiF2xQ==","shasum":"c456d6122b150e3858a8eb262041a9fb36e6c4d0","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.4.tgz","fileCount":16,"unpackedSize":529708,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfElSNCRA9TVsSAnZWagAAyLsP/ApcRIDn7j2xPRNaNsfg\nwv5j7teRrKF8QYxCpUT2LaDqDUredoWx0SRUJHAqwdPte9dvtpNe7+Bfi13F\nyxtl8uQ2fq5Hf/YQ1DhW7kIb2RAjuhQPdxFw85t1qET+TZI+TFDaIN9TOWfd\nHO7elsjaBX/RY1fUgE6hbeEr8MPp0rrqway4AD44tx/MJ5JOS68bBOK3Lscg\nhYDH6aZvLoGTY3cgNfgc8WA8nuPHUWuncyOmhoZ7XjEDbmwP3FwopNtqurS9\nIx+LLj3nyT92rWGJMpOuvkVoeIjsEgPOA0a1bPJNB81BvNt70GIaeEcSMPWB\n1uLYV/LVZa+Rf2ZzCA2UDqfe04OoDTQrNgf1dn4uC/jS8EUP5filupfGAqFU\nfg85Zvzc7Hp1tt8h9oEevYYlm/FMMQPyV5Gs+J+64Kqrv8FDf+Ian3RieiGA\nBtU+IF8IRsch3JKIzJ/I7RCRb3jupNlqaWjabtMj4xTmhxpBQAQh84pnwbUr\nnasn5nt31lvUYiDVOehWtK55zokBizTApXxbZF5k4HkSLqsy20plOEScDNLo\nCX9WeLaKxyEiO30bFYK7sor75Wt93N6X97OwxaJB8uZY6ikSJrU+Mz5XkRuG\nmDxJ8B5vWt8L3j6OSAyT1AzfaisXgfoirpa0y0f49+JpFQPGIY6EqdMug+i1\nZjcI\r\n=z5jo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUCV5ivXLLedwl/n6bpVBvl2j/snyXhq1/0Zy4kbZGtQIgHZfblgI2HnabCWAvgBx/5/8O3auvA3rhT8YuD02GSHI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.4_1595036812978_0.4250231909564277"},"_hasShrinkwrap":false},"2.5.5":{"name":"react-query","version":"2.5.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"8766a35d2cfcd9ef4adddb1e7992923c49f00736","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.5","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-hfYSoaWPPBLglUJI1wwerw1nIlf9mWCJgFN2SfZh/dvhyFhnwNoVo/ODd/h/N2q7EZTQNdcm4pSVToOmktO77g==","shasum":"0d5277123ea66616e70a444b8043267e4c75efcb","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.5.tgz","fileCount":16,"unpackedSize":532903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFxoxCRA9TVsSAnZWagAAVIUP/iSdMNDfeEEWOiTsFemU\nvxI/cHhEY1vW3nwOY+4SFSZf3B7LZUJBhDZY8KzsEgWbzHAj7b4uhpf8CD5J\nlHb8e9hJfczfkAvoDGHLDM56Liky2R/32X00gZ8oTBtnv+SFdF096yaQgaEn\nN6H2QUwjB7OEqOWgujECoqDmLYOLW9nUqXbDYwjgWgQx/8JC5ry3tHzBpRe+\nbE2qTGj0ALeVkgydTvdszmuifO4dWOjiemCoNPYj9osmjMnC6MzwOkkouclH\nOUg5XHDp2OCEezgY5G4VmTlEOyrLJXhZ0xrC7+7ezpBCDH6nk7EUnOb90Q7J\nDwGdw7Tk+hladzTvRry0q4KHJJ6C/1rVSQze+dYMpGcVK2eg07ur8y49yvw7\nbKldXXxqreYxw4nLGqkvzg0eZsFKz7jA/qwLZKyYirXHE9t1xgd3IyJwi3De\nAUYNIbJXEltNKoWfaFhgVqG/TZI6KtJZWXnNRKe7Gd4/8aSNF9+Uagnm3ZGZ\nxC3Ftj23dgK3wgUN8Mo1mAOMPqPervpgGzcbpecyfNzdStZa5tAyDUQcFsCd\nXJgLYqFkbK7WOuYfW4GOfrSxdQ1dsrKO0kzrlICmAp+cPv+5rxBcyKomQ4zp\nRCWQpTUuIMZH4fovWtjrY0rYK+yN37fYF/XgMUjEXWAKV3vKkG5AO2c3PyIg\neAGM\r\n=XFQu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOjAlYXBFJbdm5gsxAu3iHUPylbbz1ZJAVWy309dQY1QIgcLLqmz738nTs/2XB7Hk9ebEkgaQBPzCsaCVIme6hdww="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.5_1595349552923_0.767725785712071"},"_hasShrinkwrap":false},"2.5.6":{"name":"react-query","version":"2.5.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.2.1","@types/react":"^16.9.41","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"2c49b5d29ccd9204bd7e30b23efd08224b0f7560","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.6","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-mN3y2EqRVmM2PAdqqt2wBzMZI0eO1+UMcEWXyOTnKZuoqpLSTdw87C+LdvhMrmmwlOvnV8sZZynuht/tVJv0cA==","shasum":"fce28e9be4d8ab6000c257f69ef74ed49cdf0636","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.6.tgz","fileCount":16,"unpackedSize":534427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGGPLCRA9TVsSAnZWagAAl+AP/3M3KGFliXH8LlduNBNS\nYhx2MB6+to008d717F3Cdl7aYREvrFpHVYtxWD6A/HRp5PsRcHTmHpRrRwQv\nzLQyT0+b/ltOi0Q9n58F/YbWZAhDJQP2+M+E37po0DudfekceXBLhVaKTh81\nQxcXn5UfQuwGqAfwOl3dQBmMOaROn9TISkjJgg7N0MFm5AvillTLfNUPJEcP\neWw5h4X7ls2YCfNtoZYKbWakzni51JCt2C8nZ4p2oGXHMqn7vQXsoFZ+s0MJ\n3mkgHj3HdUDEGH+2dOSw+pHXxTkdryIAshcG9RKybQho/FmeC94XhsUE4gsl\nRpTp8MsuE4WLN9ui3l2B22gnGsNZBGWJZeizX6VzCQmNON/r2hUamk4kyoZQ\nwTVUhkNFZXmWDspSwQBwSty6V+u9pnSMG9ruGzj1pkPuJU8ZuMaIIRih6xR4\nEc1ghCRqsZr1ty3cuJZzIoVuOiCPplPLJyBtqACuYqgF/UdBVMYO9CrSIOtE\n+Ikqrm3wBaAO6JLHxC2lfFDSSfzE4Zi0yfGL0SAeO9l2BYYpB9q8tRb5TPU8\nO1hrJIm+nH9m1fGUe52M+JjZgK+S2pWdRIDoC1JZJQlYcs4/7j75101ez8Ly\nWYUdZOpoRZgg/Qq3S8sxDTNoS5StaTbx/XEgYGmXYXcct+P0yLKFi/ecYS2g\nhRaV\r\n=XUUB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDpW4CVtpRWtlki8jja1YNF8isg3bDtqxFTEatICHQsAiALUnOtCg2dsJosAIHdlCmsIHbCgw6iqXRZi0qscowBHA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.6_1595433930788_0.453731877634574"},"_hasShrinkwrap":false},"0.0.0":{"name":"react-query","version":"0.0.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","releaseNextTs":"npm run gen:types && yarn publish --tag next-ts","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"824e9bbcf7a85c52472611e097b6be4de82270aa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@0.0.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-n5tfCJO9e+Ho6fWmgc5/XuZCsb84aJvBRt2Qnip39M3ANuhiFLdt189EfZ6G28akDlE6AxNsgBB2oCaKi/E/Pg==","shasum":"198da13ab3899dd564ca6146110a727441c1ab52","tarball":"https://registry.npmjs.org/react-query/-/react-query-0.0.0.tgz","fileCount":35,"unpackedSize":661519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIdpYCRA9TVsSAnZWagAA9BcP/1BvtpZkGw+zXe1QOHAu\nCqDau2WlPQ6abSBIIkGLCyXnHn4p1w4cxwDfiTjbylCOklmuSAo9HZC8/5Tb\no5D8l6I9MC6/VsstVB4yDMWSrfS0YGiEdNL5Yv8yBZ98hzTcaUkSKRg5uHUN\n8JM5T/fH23p8GYJnEYATkOVE+WkS9pIfVBZD5MLuTr0Hl1Qwr89XuV2Hn+2G\nETnYSW6QiVVtpFmpLxniwaDnwh6Je9BlpuesgSf4NTah41t381CukCNNN+Rr\nL2L7A+6r2wRqCJw7pExbUB9yjYzAaneLvEQ2uJFW+lMrt31Oyh6zy2ezvLFT\nfMn7miYPk/2XC44OJg13/lUEK+K00seGDE+CK9Gtz0ifa/pHbM2WcF558DL3\nt8nKH/PN7qtY/oe+ut5JBwczf1qHNCeOud12KqFhhh/Gug9WjeeLka+l+3hg\ncvnyx77uLttEnz8QefuV6CK+rNstPrwnxGs3uGVPgRuARk0DQxZar4Dz4iMh\nOIAnyQvJEj44K1+HnEsRC6bzE8THqq61/qjoRG7uM20uVfu8SyFh/SKC2vuP\n2IfcFzndm3n0W3P0rZGkdz4TA0TbBZxgYPVsQQRCAu6kDi0W+Tuc/mfzviJL\nVhfBaD/0CwUBHJlhGa44ohHGZm59QU65cbfLpIyJmAeno85JQTtLc+u7obn5\nsWFA\r\n=bTIX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/g51lsodUYu7/cuJhLNWrnkdewRNpGKnBuX/NmBI/kAiBwLFaCjxyt3bAUfj9TGzjJxX2eBAZwxUu8xmNWZiLMYA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_0.0.0_1596054104227_0.5693015596324802"},"_hasShrinkwrap":false},"2.5.7-tsnext":{"name":"react-query","version":"2.5.7-tsnext","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","releaseNextTs":"npm run gen:types && yarn publish --tag next-ts","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"824e9bbcf7a85c52472611e097b6be4de82270aa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.7-tsnext","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-OOZYPGdywRKW7SMYIIytOl3mBImVbZevsJlBpgChusXj4swb+Ef0jiFBPKLiNho6Zpuy0HUPEhQS6ip4hlTInQ==","shasum":"38a2d439f1cb3d91dc1f515884468b266ff91dfe","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.7-tsnext.tgz","fileCount":35,"unpackedSize":661526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIdxKCRA9TVsSAnZWagAA7xEQAI2kdWFvoLsDJRpri3+Y\nCZJDYM7lLGwj+EzLz0EhIqTQPK1+ENU9tIFHejdhiVm3nN+quVsk4TAhymTG\nr4T/EeelyL4Tijo0W19ef2Knx5Ja/pomvoebaR9L3w39ULN+usIEMVKAzpeU\nMuQRS/ZjFrBRJfefQjE/u4zPuR0rJSWCB0JbcALEyWA0nkDB4P8tZeK8ImUO\ndQAeh/35sezNYv6Xy/4ml2PRcnKwJdmEczwDRa4lDDTwLeyN6QsYRD5wY3Gw\nS9wfr4kh/8bdRFNKlqx/tV8EJ9vpRBsIvUimZvc4PmUAWdrPSl8vma66kwHm\nF1HYl0XOuHwYT2qsNfnfudI/EHbCXWP9vex++ONNX7PurCy0Qq+WpdDszMVt\nM//wlpfkcAhfd9C6o+iw9l4njsc8QRovGsZWp0Cf8IwuqixuYTqFxHcTvAHh\nBixwKwWQrW25l1qAtgVxXcpY4aAegtgzzQoRu5w8rk7ks4BJJbOZEzzpRqM+\ngtcaojdpIwa3xuwofSOdwtDUmPsSDW3SicRzia5NXhJ2Qvyv4ccAKBlPa4dD\ncOQ0Tr4LlRoWgeFu/5DgwQZ8GxjTmrbvRVMM1qt+Nz9XW2qrkOMbF307yCA+\nMj9CGnjQx38icPm3S83tzNUS+gzDuI7oWcnX8CdnVlpS6eUJx0x4tbWmVFl2\n/dVE\r\n=bBS3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEls11EZ9HqomCCdCeHBF7r2v6Mcm+QgGZ4dSSkBsAAVAiEA1dr1JnT9SvaKAEp/5ewWOwrTPNDMvTqJXKw3cTTjg7Q="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.7-tsnext_1596054601592_0.2502628628661987"},"_hasShrinkwrap":false},"2.5.7-tsnext.1":{"name":"react-query","version":"2.5.7-tsnext.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","releaseTsNext":"yarn publish --tag tsnext","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readmeFilename":"README.md","readme":"![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@2.5.7-tsnext.1","dist":{"shasum":"03d3d4092302030f1c96702e13f02b786a0172a0","integrity":"sha512-FdU3vRMM5Lm2cIhFxlfZlHY0glwKtyKLV85njdYauM5otAChfQaPwdR06VY47+jG/IAPowI8Wmo6JEgFpeWQ/g==","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.7-tsnext.1.tgz","fileCount":40,"unpackedSize":661506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIeDrCRA9TVsSAnZWagAAihMP+gOhq8S2KJ8cdEX/CMQp\nMF6AXdlAkKhtHcZM0NBa7s9lDG9nG6m+cqECxAMH6RO4Dp3Yp8puptFRMhov\nliwzuDM2+aHjy4Eck+eKVUqgTYQ8TlEf8W3LDBQC3OX1+Tszkn+aCr7iERm+\nNeEncUjOmQvbmaf0oYCRHtONAsXMWA4F1DoQj7e7CCTH3Cv2AIo3UVXHhSSN\nlGUX7coJfh15leYh0XZqx+kftxM529q4WerLKTDfGZZrjmED2sfZjbCxrtTr\n8bFj3NfcllxyvDYXBHiPgMHs6aH57q0n5yFRLPsKP6HMYWKQ47zcOxYyu8wq\nCuZZWlq4A7rxhvb+AFtaHNE4BKIfIGwMwETQqVJ+JJjRHtzfHy+qYPbAkMog\ni8zWy0L70DUK1D55LqPyTaJv0CQ3YJwi3BJgf96miOwpldnx/6/jHdW6mU9q\nnwGh2Cs2Zb/kPyRKiTV25qwwzvLpPX1jmxPml0cdwh+/1dwoeF33VjRSemPP\n1KsmrZxQS3e+36dVdAUSQM8M59LBvLpcRH57IGqVs7M2VoQFK5V+5JJ5MShl\nia5vtxdDKOs15xn25etCONc5k8FTcp0BMrpRN+7kZkNcR8g7t5QQV1nZVTI6\n3DfLQTNeUeD4i/k41VK0nPkUABrXYRMKp/7EoKw6fkGlnMxH+9j0f1j9iJyw\n17SH\r\n=GzEh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJbKEcykNTYN67LV0XkiYpV17olio6oaiGPFRvTrfu8wIgQGWBGJDOEpM2fXyTB6sUZOdAvYnortJYHyGrSPsxZnA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.7-tsnext.1_1596055787281_0.6810538995358628"},"_hasShrinkwrap":false},"2.5.7":{"name":"react-query","version":"2.5.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"51bb60fedc3ccc4f12006a883925de95aee18ff3","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.7","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-oiNphAmd2Oi7FV8U0fQq2ywO8Zvejzq7idLFlyGRFZSt8lMmSN9c8FyUcvx6G19XtuWliLYGFX0nAZ5uJLtcEQ==","shasum":"b74d52b25b44874713e721bbf892553f47fa357d","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.7.tgz","fileCount":16,"unpackedSize":656568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIf46CRA9TVsSAnZWagAANzcP/0tQXNhN+pvzJ6qXSiwk\nCI0qBBzylnZXCQp+DRLz7AjJHfXhS9oMHkyASNY8TBCcK2jq+v3WI0b7XdLe\nogNpSlYeI9fEvC27BD/Jgogq1GDw048J8O00kvPdvu9QGx8UwFCXXTLqBWlz\nFt4Z5IK5uqHYv2ZjWLyonppvkw4PqR22GnJecqzhfX+rlgvG990D2kaxzUra\n1txjb8tyz3ATHHXK0xa764nesZJmEmcxaAvdwpFY74kg0r142xciSErtC8Wq\nuHABpR1QNDlswRzJyYGd+6zHYozotrDZK8XC3RgP2BS+reQyTVYRcjCWZ7nJ\ntcOtO5vWkuTp8r0iT9ukWPaKPFjn/5Lzpux3GoDa+hMNaS/EYIendhO0pNal\nQioOu7wt/fIX2dLRab6V24Q6GaJn8tdEdiKJk0EnmClnfOVW1tidkeXiXVGZ\neRmQroZ3ktNZpshzAic4ZZqx937CLIP+Yzfff/nMhRsEwTMB8aWjZd6TNV9K\nFTWcUsxprJJgZSxsb93rMbwhil09WSzHWcoC3RLJrD9V98txo1cGRM9qX8OX\nSxRkFV+3rbNJV2PgMBLuzcNKVL+WCPO1vCaUicE/Wfg5CnRpoDDf5Q7Jj4Q7\n2YoUyQTYPr+KkTzB3p96CTqUlBOXrkbe5xvXhWpqUoGSh5qvZBnL3N+xCfaE\ncPD5\r\n=8NHd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgI18IUmdE7pmw20CTTN7thk0QtrjDMwz62eJLL3bpngIhAL2gjSs40Yf+8+oPQvvkf7ei6clYO57v64oOtN67ncLe"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.7_1596063289523_0.6646707977471162"},"_hasShrinkwrap":false},"2.5.8":{"name":"react-query","version":"2.5.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"126790ba968abd95edf5effc29e867c6c9601f7e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.8","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-VXQzOokL21uqEpZDiemm2TFR+s0y1RWn+O+SgZW/tGfnbekEf6/DSw0N72hsjVz+MIFGchK2BgXtfXAy4XHKgQ==","shasum":"c2aad3acb363386ba449f23677792591dad287c9","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.8.tgz","fileCount":16,"unpackedSize":656392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIgA6CRA9TVsSAnZWagAADt4P/A03nTQEV07XIcqiLdAX\nmj6/FwKDp0bkSCWxV+RFXEYJUSHFC8C0Z1QlUgDL3HkLOX25CW7Ef8dXkZE6\nkpZ+Tk3DIcAXgtvSRn7ZkKhpMnzFCh4Uxx4eueHV1NgwTkp7kSRa0uYmoBt4\n7Pj4amC0hJPFLzUBOYYw3tXLSg5zJV9u5yQd0jfLbvs/NMnxJVvTV7pex9XQ\nKe3dqARKoOHQZB9NlWr4cwTYSyAAcGU6i2xtS6lwyU1GvFfU+ZPhT2acwFgN\ndxI3/x/M3IzMfDRD4642nIG750sPMTQ88LuQJR8fnZk89zNE0JxGMAMNt6S+\nB3X+dVK81oEszFWS6W1kgUtp9kyisuwpNmGnGfEB5HnEzMqW9M8exju5JlBM\nW3UNLTMCY+vne5ukOPCtMm4AZ2NU+eXcbFwdm+vtVTnstmVP06t8dh6xAArt\nAXBQ/XnqyRVypH/lFcxmprdqiqjBV6+b3+ZM3rH4o/ThfUQ1bJu7t6WR2o3W\nXCE7/KteXk+DdEeR0UYRpVY8/N/MHmw0Yn2QFXqgdpZHqYHXmFWPHOyolxq+\nyMsuPq2pKwrOJ9THYgmvk7tetzUqoXwIUqE8EzHdVSHG+9Xjy+UxZbIhMRNa\n8unA07PMUGIMtx1TG0CyNxf8M0723z6CSc4zPgs7SxXwowNbwdvLdeEDDKKx\nhi80\r\n=5nu0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXOK+0uoQERfZObHCas5nPAJ7SU5XRsu/ozJ+xDy3cNAiEArQq0+XWprarYPACBdcFTjS2EjEbxZU7hHOrk4rZJHJQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.8_1596063801553_0.4920134936068621"},"_hasShrinkwrap":false},"2.5.9":{"name":"react-query","version":"2.5.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"381dbe2e0934f90cf23a6a3c77cfccd2eee3504e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.9","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-QKMkY9C71ccjVan9bGzDq03z7FUO7n+B7TCJDoeLc0scuKP22/7NlT3y6DK5MLSznoqG/IkkNykfN0k2Z46bTg==","shasum":"eab250afc3f121c694f1cd01214dda0d1ba18330","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.9.tgz","fileCount":16,"unpackedSize":656712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIr/sCRA9TVsSAnZWagAA/aUP/jbwfAJz92GP1j0jpwHB\nkgYv6QzomD8UFfpUVw6rWo2InIgL7oZUtoqaJf92qT+fQGhM3yvBNdQ3SlY3\n8wAcEDoNeSh+ziDv/58BWUCFYCUXs86B+A+MDKU9abod0L11OoAS0T/NaJSD\nxOjNSpDxjG6+V0p4j7j3tOfo0gaLe738X6b/avy3aUEi6ogYXf2d1DOAC0oZ\nMZY2veDE/q4aFVPdvJC7brMr4Iq7YOQ6KOj8kCGH95u+Nb2PmetSYvEv93PV\nzMZmrebgBQszOxIAkAwjWdumU7ppLxCskIXd9qGPHWjIwn3SIrlbh+m1ysSh\n+N484AKG81I8Ld4PPnIU4ZDDcU1PjuVBd0XzsLFrVb311Lt1tdrNcE4PX8O6\nCOsIzmMYhOgCIeJmkgLVPBvSoreqjw1/IclKyiwcnGyhuUrVbqG4NUv9xpeU\nOzWfUhYud8jgXORVslazpeuz89Z2uhdnBnulIMqrIzKIRW2Zt0vlZdsF9vuh\nnqBfqokmhmyM5+RTSk2Vro6UbcbF5gp3/HScdz7smsQrUJfrhLzV9/dk8mzj\nXkfa1oYw/0KFqcQm0Py5ez6DvQZoRr3kpJcWkkW9Yh8a9DdPxNYMb1T8OAsS\nL2TescOAGHBzg5n0MKBIotrUgVOod2jRULz+h7hlr+o1rkMe9kjxBiryTRT7\nlByI\r\n=TprX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmOd9WxM8SvdeIGhaxyoyH04x3bqqBgoJo8nxkkrSEbgIgXtSETi0RGX/R1+j5wg+daMbcoiiFvMhIRxJD2Dv53KA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.9_1596112875296_0.16983042379743307"},"_hasShrinkwrap":false},"2.5.10":{"name":"react-query","version":"2.5.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"21d942b178af71495c03c3c1c3c77bb4c4212469","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.10","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Ehe2G5+DxpEkoMJ5lxZjewfhnaA8j/GuXRUmLyJfLRQymgn0+jRjyr67IKbET2fUNH1KJ3Nq6JEA/aZy9PR2RQ==","shasum":"f294b15b7003d8e0597078764ac2907eec47cbb7","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.10.tgz","fileCount":16,"unpackedSize":659201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJInpCRA9TVsSAnZWagAAs3MQAJ/zBcybPjyfW7CXYXUT\naiHnUz6gOsJ51nEl8l4msCn1alyuH3rzR7I3xhzDv2BAXEysH84FSTMc4iTG\nKxGctAhdnFrWqdJK9ksBhKrjyyAgJqbojXpFHg58jH5bIBsklTO9MeS8Yi9A\nvrO+gGklbjEUJmaSI4WxgCkwbY2y/58p8ejehUaxavCKewsdQc/SbKQKTMgi\nOcYII0gDVZRul4/KLYlq92wHUH0q5Av2yWfDBAeN17E+MAEDN68FQ6fRi/Sy\nzmn0mwL1+np/dyb5Hs1u3D0f0TSrLtliBSa23I1N8AJhrTfqBtJ3HPsUYNDc\nifsHxCs5y5mw4QAzzX/aQ4I1JuomFc7a+lzCrd7XYwIODQdsUv353rTFIYRc\nY+EeZN3lH2/PePBOrCw7hrWwEvb5YXuWaqXmviaM0SML1cvINZvy6C/WaCnz\nUPtLlheg6xx3eGL1QY3r6ux8xSrlzClAk1/ETPp5zHmq03cSgpKRhuhVYDB7\nUGDcTON0fSJS4a2LRNA6V+7lCPmCYaHSaTNFA2JeP9cnn36p1zr/+MPggrgy\nUOzlYmOF2YeIfF+0ZUEe0OvvA5zPPq/qwmuTsGkSTdrkIxrpg0N7g8gLYTxf\n+6/ZclXpFY4P3aJVnjsT349yebXA3pS8loHt9Z3NqR4S89SSxgT374rJHn/J\n3RqD\r\n=y3gl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgFqqxh4dhLFRyee204XpzgkK4rT7ew01b5LIjldpugQIgNFr3WXPfoh3e49bSiDbMuLft5lCdMCR7v+94pbPj704="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.10_1596230120618_0.09386173750418036"},"_hasShrinkwrap":false},"2.5.11":{"name":"react-query","version":"2.5.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"7158e3dd5293b8a94c730ab4dfd1a030a6d8628f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.11","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-QwKR+gOENQVQqx45+zMtEE99Us39Ybx3OXUYyLRMzZfHSM2FPf337iiOCwko4RRTF7Q0HgiC2+DIbVQiH1Rk9A==","shasum":"fdac3f19d9765c4673e1694ad52f80b7c60c961b","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.11.tgz","fileCount":16,"unpackedSize":659237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJikGCRA9TVsSAnZWagAAoN4P/1VZL/nXWZ+Q+v4cI+M1\nGmeWYkVmaWfeJ2DnmKe5Wl0bMLjGW3GY+9vWU//rNWoUV5OAfomSZ4X1VTOQ\nTChqKYDkGKyOBZP9u8KB8OGzWtkv9ald+/jlaBJhT+MpMik0QAjWk+5yJmrb\nbY1yQ0U0Iha+ri7DRCECiyw5l5BUmAgqEny3KkxGQe6UIFniwrj0kn9dmOkG\nl7RTbuJvDjOcZKuZ04bYLBM2pNWAeD8gc4kkRBaW2fTfNMZuHq/u7Udenqcq\npFTwEt/GRAA3YWRE2Kin6fkQNetru33x7P4mnoS8N0tCufcTwQ7HTh1kpZwV\nHbQAzqyS5Xw/sVREUYuuyIbj4PbusfHoTA1utS4CGNW3G+jF40/rzkL10pvk\neEPbR05Cu5/wJusQHqm7QxFqv8IxfXdjNMgvxLd5f4zocOFlPhlmTEzeVSyV\nrvCK6m8fDIbZdM359GuP48Dh+YuaAh2mRBaevC93aLvGcMmL0dF6TaNZsiTX\nkNL6iG0uVllO/kKUiJLF39c1ja7R1zxbx3uCtRHHtiLUjDTIA6CHMQaQxmpV\nYhxTeCTeOoAbON87wGg4fsgTMTaDwtGewwXB6AF4LlthccB6odQ8sGG6G7un\n5W3TBOPhrmMfCgft7rpDJWpblQ2MVCv4etuVXkCTJCo0kQj1c0n+Te7nc6Ly\n4tFg\r\n=u1xF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJwm+udfUOHrQD/tQs0uncBGaCSyABkmoRuEAkjlDbxAiEAlCx3clut1lYXRlHLgZZB85BaEqs3yZp4xPR/iPsUNVI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.11_1596336390051_0.6035557201631061"},"_hasShrinkwrap":false},"2.5.12":{"name":"react-query","version":"2.5.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"880f971176ac77a7577000ffb1dace3597cfe728","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.12","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ni2Hrz8tU/WCc5EQj+QB0jzSgxKdVL3tznFvTrXDmGjTxFj9hg1vXoxEPAn8d4pXy+lgPAflcjxht3IakUgHzg==","shasum":"f48be402886b9d95f892d836c2476ee3fdd3e479","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.12.tgz","fileCount":16,"unpackedSize":655309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKF7RCRA9TVsSAnZWagAAxx0P/0zoOo6Ea7tDl1qDFk6t\nRYXFrIwq17y2kZoBMeF1BtL2CBMDfjgmO5ScFcl4Ln1MhiXZwKkm7a9LVbf5\nEAnVISCh/hjkdNgTqrqM+Xkyl7wdDxiuhVjtEZTClJbbYh/M+jzGBya2rxUa\n2t66zglyVxdQ6eE7jFSA1t8X9vs1bBVE/d2wBOOy9iXvUzsPtScOrhezUxgs\nix4yTY8GHzQM7L0jiQCGtyInnLoH+QNry3LwH+RJw16Y/9NTLkvhsUzn2Zii\n9fSMup/X06+ryz370Ty+/3VfRyKqNnHujT3HjoHEt4ZDKAN484iuKUwfoCuy\n1qbdg8oEJxVyfLaDUlHkbEw/rBSNL2vmZJ+SyLnclF7+lg6B0pIzosNcioC6\nKAfUVTzt16+AL1y2f2KVHb1PSL+rK6J2dlzuirnBiXRfcO61XrKwH4w9XRF6\nJ1MzqoVI6pjjQwYks6nm/rcbsKTaA9nO8TmsgQBpH1IbPDDNaGRIQDn0KeM8\nVMEEU0vjACxwWkS64QLSh8PZGHsHmIAxKH5ps93gnuqd+wA2i/usdDooHra3\nPUYV/urQfS4aARQjfaiimxWDEHDyVOFedPZG3B1qUPl+uRynF7w59+oDH7GR\nGm8iCyq/vZ9JvHL66dPj/XxYQyjN/cdC5m+TFPngFPbQvTMgx5uzrUZ5LoPv\nE6B1\r\n=l6Kp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDV5MHy0jd/5B46BsCDaxOiWL6JZvsy/uVjY2vRldRp5gIgAsDHsqAQO/4wyF5D/eVoxIDjx2K/55yI5g0YxKGpAYo="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.12_1596481232402_0.08055912655532849"},"_hasShrinkwrap":false},"2.5.13":{"name":"react-query","version":"2.5.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"140515d44b0361af08a9aed7e27615d975a2c268","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.13","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-jdpHWav8hh8KwIL6v021/S1jE7GTKBcZe7o86MfKObZ7fIAz8Rx6HhC8Pej5MwcR//uESdnfNoyr+OQr2Pbfeg==","shasum":"0948e044416562c4c58c966c27387ce4037bbf5a","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.13.tgz","fileCount":16,"unpackedSize":653385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKM5hCRA9TVsSAnZWagAAWTIP/iThBy4mAW+SlVvO9q5a\ncdJ0xgVSY6PIrCRs4+79YkQbIh6FZ3YSN6CEKI0SEj53O8KZpSQNNrbmCZPw\nBrPoZVrh10czhF/ORupma/PiA+6krnEoDfu6XKN7DqCbTS2A74hgPj4mMtal\nKLHBgwQm/LPSunO1UWHkeK3GnqsHEMlc9Pgo5LJ1LSuYTr8AumSEqMOM1XAW\nIG9xrkZd9rahH1jCC0L6FuofBPwtTjhWA4r+Z55HVsRKRGP/iBs70KxToMPV\nDZiTCu4n2NPdJcJKg6aiksLCVbfkoyYTEOAV5BpfX8e9Utg80HO7DV8bA032\nJmmH6zDt79EK4eJh2ACuLzHBO3Qy//cUgW/s5CFYF0hYmSmzvpzCYp7DfMYe\nW8jui3HpXMrkKrzTb56dsihfemNqcC2tElaYTDHJ4Q8S2uloTAkz14VS7R9F\noLmq7symwxr5FfhIMVbjW0YxK5pbs6fmzkOzJq030yTAmQmKrYQkaM0H3sU3\nHoWLiboeNDdXQAWyT99Ui1EPdi5GLUqWCTMXZ+0VNlmCwqbc8dhr6w9o/lQ1\nRK88VIQR6BpDtlQpPlDv7GQMr7U1f7uTc3XrVPkhWc+3p9OLdRZOLlPuRO5C\neUgLSY//Daj/2A6PGlaXwYchgJVz0wXxpT4k0UlVceJfYibE1X2UbsAqtKJL\noAxf\r\n=rzrB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7L12zajQJlqUI96y1Jq6vjOHKNTEZ1/iYfes/t3BFXwIgPJFT/OLmpOSwEMy5BfaUg5RIh7afA7Uipr06bQ5p7rQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.13_1596509792428_0.27448906178706967"},"_hasShrinkwrap":false},"2.5.14":{"name":"react-query","version":"2.5.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"3545717b95ea4de9837930221c399f40ec3c94cb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.5.14","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-uXitanViwKKKSgpEDQZLoABziZwlF9rerDJ1qundfaVYyI2bg20AglZTT9AbMoMsd9F/okhYtB0GFUkK8bOQqg==","shasum":"690bd85c83fafe8dd6453a6cafb922d475a1eea4","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.5.14.tgz","fileCount":16,"unpackedSize":653474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNbgaCRA9TVsSAnZWagAAFg0P/2mYP/ac5UaTOekuIKjx\nEQVRBRE1203LwFut7CvZs9QYqk+m3GX2Sbfm7pFpV5p19uxfSZ08Eyxli+jT\nTt3icU7/fRwEIii68ujdu8gtaujqWV1qfr5uD1sYcnbQuyfSHeW3QxYwdOwk\n1rRXIFF1l3vpET50HOUcQmTlrn4UjPwqSY9R8v96inJiqxcaRxoxG/Oy74uV\nRUbpvmvGjUnvhFrXCjNSm8qbZAiV1v6byl5RnugXccUmVYmIm9WGqTuahFB3\ncf17qBbAu0S4XPl4nqsfN3X80GULePwS1cXuxasHJrohPbGRgATIkvUE0mS6\n5qJjH14g0EvAFlBhPY4AIJm1oWXigZ1cYNSj2LtzAZx4MNQZr7g+p1Xx0T/R\n7I5QumvwE3n5yaQiL4a7SlbZ1k0gbeNVHd53lrI1ZvOVR3T/FLhyxyoGIfrU\nB1sinLM0aQEZWsU3/vWC4TVIfZH5FO8prAYKXufwmTWlEfDMBvtjCuhNnG2z\n3lzvrCWPpZLaH0kVEwNEkOdWUzoWSQLFwDgBIxKskmgz95tYTbwzv5l+pLja\na7j9eXSo/F5zRAE6UPO8DauPwIVSjUWsmfaqrsg5va5JZqIC0r+9U51+9eOy\nt5Lkc3H59359H/dYkzAr904tceO7Vq7mRE53CXnPBJxbdtE/MQnEpRQyOqcT\n/GuK\r\n=28VS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCTPOtgQY3zWABtV+m+b/eFV/e1KspnBReVM0y3akJiAIgfbjR1MAmDHkrgwMmMpLfJncLNzR+UKGR6bGhaClfNnU="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.5.14_1597356057965_0.6402257725763563"},"_hasShrinkwrap":false},"2.6.0":{"name":"react-query","version":"2.6.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"dc70f7d65631d28aa27b9dd0f003147140a5351a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.6.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-eaigvwT/Rq6yhjmo5hP2CRGT4+CSoj2dcYK12e4HmWvDptEALlA3yoU6KQBAhstCRUAlpF48MxVZlykm/AuasQ==","shasum":"a1ec81dd4c8cb9ef8b19dde7380d0d754d793eea","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.6.0.tgz","fileCount":16,"unpackedSize":656946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPWd5CRA9TVsSAnZWagAAq+4QAKBhLPS0AIVUsOZQfja7\n20cNofbUfXx4vXhTJ7FiAe+vTVxjoGNAD40FDd6vjXGUF8IA5qgd0LiYsw6H\nbJohHEt5s63ZcrHqFt0mJcQfnrmo8JEFbBPAdmM8IC3yLjMZ62Q3st2gIOMB\no+gG2bzZigN1T37kgs9526RfW9icPHKdGasNIgSzHmCNrUxa+R6wSjLBskSi\nLnHXGF5qR445rBs1/EPzXTX0a9ATDnA9AwZccYPk42ma0LSKvLyEioQ9rRpH\nJnPAqXav50mrhlBa6UaF0pvPWavLtNvM5XKosEmdegZGLSOz/oaOiiQ0TmuF\nO5qOzh8sFvZv4DGFrVAi//YTQzHOJyyWfV7KFX3uQDGz3aiVVo2YTSBz0wF9\nmqFh6R8G8L06XatqU+oD6X9L3l/02ObsevhMDPElQKv7K5RsgZEJnYTQnWSA\nRmWMkkyTK4Ves/Ti8qVOb0JcshuGmFZmzZPJV5TJ/cOQeTmCI50Gau6W3r2l\nQbdVUMGIewGKsmYofzI2wrB6LvWdSTJdDZ+BpJYF7jIUILbohF2y6VKJ/S7V\nE96dpjwIq04Sif62hjZ2VQZvKquA8xHcgCi4twaRhv4gQmHlv8E6T2scUuDE\nSgPDd0QRRjZ7s3pNbBDQ7seUCrunNOT86IJJyAbIasZfS1QqIGYMdvr9i/Fg\naZPx\r\n=PqMg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFeIKHwTpzfrq67RmPktt2SQ/QH12DqpfTZmt20mvDMAAiEAq7RqgTl/9FA4Obw1GN8XnmRImqXJRRoaYeDdvE34NkI="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.6.0_1597859705214_0.3763672134644156"},"_hasShrinkwrap":false},"2.7.0":{"name":"react-query","version":"2.7.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"75a1d3d36f9666968dbd61bdcb98b473cf91424b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.7.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-+3VoqjBs8fxK5Nh75/+tRFKI85AmYFPvazoiKSy1yxmzH80xsAd5pCUn5E0zIIi0KKWN/13kYnKUdvIUPyuRqA==","shasum":"54ce04f108515e2f33b57b70efbe4ac38f2e4e2f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.7.0.tgz","fileCount":16,"unpackedSize":664777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPYScCRA9TVsSAnZWagAAEHYP/RZZCuOt7hfVyg40U/kU\nQMwtoIqh4VJ1VDsjjo1Ku3qf5hTCVtVbIIDFMRVheAPlw99h5dHxp+bI0XGT\nhl7D+0BqA/NeHLD4qjBTC60BcYxjgrfrm5+5JRFklWQvaGQIJQVbn9SWXLoF\n2LXo3c4tgFyUDKB1/+NhQNcdXHO55LWZHKft5xjZTM51NuWLjDQNa8WZakPW\nvj9QmY+4Si60qvdY9BzkOjOJjMpB+MqBIkvJtpWJ9GUhgiwOGwKc+D5VUu2q\nr4jTdVB5Z/EuHYdzkqgxq3sUXLWt/vp87lvzm5FelF7T/CUjJeP5TAkeISs2\nQgv6Rrf2bCP9rD/qLISJjqusGXfU/ALfAVbmHZkaopEtQoOfN3ow8/8zMQUG\nm2xNevCECrm6vQGaMbWtbTdMySM7U5RuFtkPRs/QBbks26FhQYc9BpTRCkqr\nsLOMr/VxhqlEx0IBGQE5mbTcYC00K/tGQ10NkqZBJMO+SE+Nv5z7dNcnJ6Hs\nyk30RGsjGRlxHgkwbvTzi/SqmwTLxwCk7t44mtthQnw4og1i5sHyEKySBn7Q\nocPpskPuPrhTd5Pu3zdDE8V+ZliyLPuR/8dOGqhBuv4qpmkhgpMYfRnJZokD\nX/GX2Vy1lCaG9SGMOOUL0FZzo7pVeBeihVwydCPRbnOV1VGPzU6lXXP9BHCQ\n5JRf\r\n=ri3q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZpRo2R+VN8/z2vczBub5AzaW8xl/nGbDRdeUWYzbWLAiAJD00YSz/HPj1KjKA0yOIlDj8WOcvM2zbPm5oGlBDzGA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.7.0_1597867163414_0.0548666557193227"},"_hasShrinkwrap":false},"2.7.1":{"name":"react-query","version":"2.7.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest && yarn dtslint","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","gen:types":"tsc --project ./tsconfig.types.json","build":"NODE_ENV=production rollup -c","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html","dtslint":"dtslint types"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"ts-toolbelt":"^6.9.4"},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","dtslint":"^3.6.12","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"ee2735d84cc8e9926aa62e67776213383aca5291","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.7.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-6SN8T3r/MKt7yMXMTZqHZvwXYzJz/SIASknBYYz/Y0KLLSImstZfNBrhW9+dQq9ESzsaCesSlUQTVLTD2TNz8Q==","shasum":"3a6b316b08376aeb6f5eb356c63a41310ef8f86d","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.7.1.tgz","fileCount":16,"unpackedSize":669613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPqXZCRA9TVsSAnZWagAA8jQP/jwgTayg0OxLZ+4cjWaA\nXKiLdegBvnpfK1lIwmYlpxqoKF4pgy7g3JAHsX1nbL96IPpYc/gPs2I6GDQI\ngXmGvzuOg8WDrVBYSxRtmyG4/R/cdyr9dzac820z5/X1oc4wrd5pfqYMf3p4\nSVC+rD3O/bsmAtdwnKFuh5isI0nRxuSfCp23SCOAr8woR6/KG1vgR9kcmqDq\njFX5rAawQqwwA7JZWpvkL3tJKaivqwEiX5LHjZ3uTB3NSHi49Jps5UnLGLh0\nPMHMxn0L2P0PYOhCKGSspiX1LVIxE3Yr8RhgUveG2dW4cFmPoHWfMecIJ76P\no3ciPMCstu3hoDq6TUaNp01EvnQ6OYGup5hw+a5ZJFIpdlxZCJtxiEVpUAfr\n6JvAr4HuScs+Qci3f5YuGmQNsymtonREKUyDPQG5WgWuENAHzL8OWB7kfBFk\njGGf4shvKT3r9a1MB60Hpoc/DUPY8XTQI3Ue9Krv4e6UQuNGtY+xAlh9WbxE\nbK66l59n8gnqGmHGRwGDxSx9oNo3mw0SeBjBpCFkkU11/liwo4VVj5f+Zdny\n4pe75HUuNB+zQ70kfNvfPEXrIoOzYedd7w5q/ODfRsUW8Y8fnfmu2PGa/7+y\nbBKJUH1PFVR6TBjkRHpq74Ep8DdWYh3BmPI15r+9qp95wjJ3Nu97dYJhVvBy\nB1Nl\r\n=tzeF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8tePxPqlcnzwyt0z6Chrjo9TuuVgwne2fCvN/PmzkGAIhAJ17/4LTb1IIpTC6coe1zrhZ5i7ZiQ6pTdcsZY0zv0YX"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.7.1_1597941209000_0.7368355684888888"},"_hasShrinkwrap":false},"2.8.0":{"name":"react-query","version":"2.8.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"73ccba8612041077ce6b588eacba8c27f3a79ebd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.8.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-V9lwIA18MKY/sm3WNGHQOQvRGKI3ywlaoy5UejhBontoIljAjbvmffEUvJIvLTu3pymNG7QIVQV6jjBo6G9sCA==","shasum":"7c4c39c9344b99d3af5646f95267adf57e6b16fd","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.8.0.tgz","fileCount":33,"unpackedSize":648795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPqllCRA9TVsSAnZWagAAUxUP/jy/vRCeLb0BTFZc/cf1\noSP0sDxecNp9roViZpM6HPDY1nxWyIVCuHw9XzuVQbQihrO8Ywjm83IwatCr\nNWOIkRHzfG/985pLarhs8iL/rQbKVHTgk5BCDzsDrdyPr0sZ/eVeihoqBdSv\nFlNyzfK8rk0UlKeTkwKX8kR2MIW3yIcoQLMI1vE1j9VJrO2ZpbLsnXMhEtMm\nkMvSdRXfQ4lsg3aA6cRgwCRCQg2bajT0Iyg7C1lXZn1Tin0OFcRACYaTczMM\nUy/pjgPBQZKlcFZRw9+x3tjo7Xe8tNLG0tDx4HKORvq30lhk2xIFIJOycbR1\nKAQp7/qky+Np8PwBgh2H3xLcWDW8N2hlPm69NFyEm5Eodf+KFEn42zg60sVs\niTuJfCkohHbUee3mnLmxxBuuQNhIpLKL5Jog0jB5E11r55TfrJE3Up3Y9krL\nUl1qMbLLed7l9WRHyO+zsU1TYQ4v/Zd4RIm+eJp8bMtIUowO/fXrANYDh+L3\nBEXzfMEU+WYk3pbevf6IdURfDbbQUdLg+XW1j64JQpFPjLVkArGM8U7oiWSy\n9w0RvQLBrrawc1hvCb2rFM1GtS8rW1GZqxa0zQcqV13NUo6l2AY1IrkMK8tY\nem6HQcL51KddYz4Leac90yiNPS7Go/pdHMQuGourgOVgKflUzwx+Wb5TdX22\nXjb8\r\n=tejW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjJlmPuERKqoiYmH9M/3Kbdvysqmvm+tcedlfd4jak0AiEAnrvxyk+FdvpfuyEFsuQjR1Aa4YKMl7//Ejy9VFTS52g="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.8.0_1597942117442_0.9763906703032352"},"_hasShrinkwrap":false},"2.9.0":{"name":"react-query","version":"2.9.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"5d1dc70ca95f5c044872c602e6a27ad9999f634d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.9.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-iZW2F3+agbs4u+JZtED2obwepdluwNFzUFcsvfhMadiiyDEbKkB24HauKbkBOHKMBPTC21oxu5LCTEr2YeJvlA==","shasum":"b9f5923f955ff069e50fc2dbebf77650acc3013f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.9.0.tgz","fileCount":33,"unpackedSize":658380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfP8dACRA9TVsSAnZWagAAGioQAJW00NHusO2S9SidL3Xq\n+r5aJWXcdcQS/s1a4Irq0ceSeFp6b8JW5KVeNOYYVi/F7Wyg1eYxBUvPvfE+\nQuyt9MJNZ6x/p7o45ziM+kUclAfl0TH8pEEqSEQvCUoXU8g51OMWsK1XoNec\nOfuHZCDQJqOtfi8gQ523RUoCvD8vZAJFXqA/3xIAEGSAliLluOCBbe0em8YD\nqVSWsIR67M6tR+DNf0ziW02fuO1A1IAfLJkPYGDyMMxLQjAk5cKDdpEPxY5D\n0gBHqSpjfXaxNfuyrZ2dd42wBiAys9h0KT9rR/vZpRe7edVNzoEmMZmwqWUK\nqdzEePQ+sgxOkxyqKl+e/REYD4/EOD0GobHybF4SS2gwi/4NbXwe3aFuhFSv\nvfqkYuVN69UmeNqIhI28kDJnt1QTjy5UDR6j37i5oY5t4pT7Aei4x/UuZdqn\nwKObj0EDKLx9nlqCjJb8EK9uHXQjICCOugdcs5ZhwQbSSmDU9GSBjrFxqI2h\nh9iFaeSQ/Z9LfbVZR6JTPF3yLblgpy/L1YGMHpmNz0zcHnuTirzzBPBcN8b0\nUgcy6onNTAWwPLTA+HI8mbzluCej7wLJg7kEiyOwpEELde+8AmMmb0IevLGJ\nhKnaNN5g9tx+/gse/18j+hGt7lsDutv4fzU99DWhofQiBcIyeMQAIJVozvgs\nQ1Jy\r\n=xoGQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR5WP9NhZG2phbgShqxRU75Sxg9ZH6eFYYQllQ5lbqlAIgByfUhTl4l5JmcR9uC3DW8K6CN5ldFw52R1xvC7TRmG8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.9.0_1598015295370_0.09668582525086844"},"_hasShrinkwrap":false},"2.10.0":{"name":"react-query","version":"2.10.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"2ff6041b0fad1c2b829d497801411659de74ac03","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.10.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-d+JaJmUEroUofjQgYW7hETTvayy8C2y75oBxMj9sdJteI9TFCSgafoWLbwkD/a6Q5KAzHeD7+40n2y22nn1eDA==","shasum":"5bc08bc868fa476d9718e41b80484e564b4f26b0","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.10.0.tgz","fileCount":33,"unpackedSize":659196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQnnLCRA9TVsSAnZWagAArYQQAICUi3DZhuifyIy4Oge+\ngL2Yl8xa+leWotaFqF/uPqK/4ZHpZU5qPypC1ggcqEOAM/gAqw8NVs5hE8mM\n0k3MUykqQFidDz4wcjBFPBLJmg73ZNFTRm0V8ux6OOFKW9ObzkdkBQtiGbkh\nJheEJrsY2FQDF8jtq7/eOHZSVyBP0EQ37ItYJute/mSeI7A2kANrJhg43mbp\nv9uBrYKOmqnn6A8iB004nBzR6TPC9lYIymOXui7yTLajnNFlZQVfAUEkGnP6\nUNcgJFs9a0Kk6PpRIwB5ZqLSRfQ8xPq4dzixro4fkhY4v1BJO/toGH7C2UDY\nYNky4g6QYu1sPPP9S6otYJgMfdVh2zCRQJwjfhqHj0jJJYGmOg8efXExtx2d\nCoiT0yWVpoKyK7n5QXMZ4mTaG/WJI3y7qPmOsBdUlVWDAB3viw5E+F8kr68x\nrxC6A7ulvbK9ddmOTFCAkxZrvjAiKMzUXGGEX+50IvQzD/i8BsgaSfc7dMt3\nkPMCAKlv1FblOQWeF9KK35JlQhDwI8rnejTuYHTlLv+dIHnDcqMSyDRpxe+0\nU0sPU5qKdrL7M7PFzo3CbqCeWmVoDGCzB3KWPjWcSaVff1Ah0xUbQvTI+7gI\nUFfpbwQ+lgmHhtFoiwJhc3ezVQMPMyqD/Ebv60ZD58PnjH138QRS/0DEwNqS\npEAF\r\n=aaex\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICz9DGJ1xh6EUwlaOUQ4Ymk5UyHi3SgTzjdcmJSFDxBwAiEA9hBmdi+ql+M+m4ZgXWMUPnBqPAa99WzGc5u8b/51krA="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.10.0_1598192075139_0.1447995491095193"},"_hasShrinkwrap":false},"2.10.1":{"name":"react-query","version":"2.10.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"3ebb4547561185f79d3767ce060a59ff848dbe43","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.10.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-30wmgaoziSS7evp9upYK/JaW07y07ghRo1jB+EUTUkNUHJXOwDHnYKL+b7pc9IR0d7WlFdJiqgZ7Z3gNWjCg3g==","shasum":"2303cd44c8d4041e52df5601dd5a532d3bf87f98","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.10.1.tgz","fileCount":33,"unpackedSize":659236,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ96xCRA9TVsSAnZWagAA4kQQAJGcWcPUZYHlleZipukR\nC3e+pqTZunypkVDxMN6vJKfs7CToDYIeeIkDwZCOWtcdKPE8r2V0ow6QzRye\ncL0c0VxAJSgUUxOpapQ/q+9n6n6UHsJP5QfTBsanY/ibEPbYd8syzsno5Kd8\nXS+gaY6iVhn1IaFKKok7RZUtEfwzu7BEbvPDFNuyz7a3l6otSpGBGn9PnC8i\n/kzsgzxFl45xLS5oYs6t9G9cuxHnmpYWWxMGOw+ToVUAOQCMRzvqGIiNDTFc\nrecShVIWGis9EOk/3hJQHxXgT0kZSVZYHO/61HMd2vlupb/c/30ePEGY+e7x\n3AsX1IDNsy8Tcias6Bxw2o3Ah3fzfrTF4VpgElB/ee5wfgMWXLPNGu/GK/FR\n8QEFKypX6LbzwbAyqc6jZKuruxR1S1kbsUJH3k7EvUj7pU6AkHeNBODVHbEG\nqyHIjxzh++kgahR2q8PNker3tiM+ciPZ41dp22JXsgHkcGDOLKJNnWMc7Yb7\nPId75aZxHCo+NiiZp27qFU3zFlCklF9zASGrdx/8c30K/UhclGXs5PKvQYAM\n9BcD1Brp6PQWGO1505fm4k6aJJu6yJwceRZrnicd4oqRkNOECbK4uqIU4WIP\npKKZBoQPJ8pcudw3c4VF1X+ip2oAy+J8QNJOTnO6jX1l6K2bW6IIKXEh7bLi\naYNI\r\n=h0ix\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGj+LiwoZ84lFqh8gV8fmuUZx5X4kzu8wn78P70XuauNAiBnmtFyZPc8TF3p0a/fku5fqKSYxhro7P0j38ZwpaHCXA=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.10.1_1598283441353_0.6077829143126274"},"_hasShrinkwrap":false},"2.11.0":{"name":"react-query","version":"2.11.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"6b9248222f2eab7bb45d9f3fb2c052df105cb6d1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.11.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-kVsvZA+qe6ONfsi4rn4t1koxbnpmwRsFev8dRijUdH/p3AocYPYhh9mabaEgBQ+S5uKwFgnODdAc5+ooudnngA==","shasum":"c0e3ff383508de5b615877bc00bb5ab59cdd61c9","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.11.0.tgz","fileCount":33,"unpackedSize":667325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+BUCRA9TVsSAnZWagAA1xsQAKJzSmXvvtp0goprs+M+\nXSXYUzYQYxDTT95tVyT512FFw3fAuVObvTAuqnE1IaQ8pfyS801HITKgYFdy\nDwFxihJ+EFXn7g9Nh5VgpcSvkQ/RWrwhMUecDXPPhC/bGTn5m8xAreJRdGC+\npq9DjPYlU00Ez5k8LzPm5a8zlZA3PitjjgxwOjZMd9eWj0fo7EeCPt+r2q01\nBs00CFEoYaTu3EXnuJT+vvTg+etJsSDEthL3d9z2iyHU1MUSZqSVfWJlcSnx\nGSEluDkSsNnbwBbXYwsCxsU84KDZnI7sI1MprARNv25dEvmZ/mnNnaVIhTjZ\nVVzLdm+sZMgDfufFjE0diI/pWcHmAH1NAqr53PmIU9Vckzaj5rvh9x10Oifw\nwCyvN0f1ZVPKPzmSCXNnyuDZg4ydGcf3ozbQ4YJCi8Qwv704fBqyT2wAoeWJ\nqRVUbw7Rzap229enBG2kq6E0qcjxey0BdZlQGDQW0xFW5R1m2PeMPvE1/gxM\nG0bDaKn/ydo2FELajfdRgC1piTE3L/HLm8Q2+uFYlxS9Y6DQfAjYhPHFlKe/\n3h6l3Dg8Ol3zRHnF/m1Sm9uyj41Z2OYZj1VztV+Y3HTppEuNk9obubOfE4Yo\ntK+S+vEb8Xdc5gw979Xp76/oh9u08uaaMvQXDG///YlJ18idLIxu919QS5w7\nnvYn\r\n=auSL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSB6DlBIeFy7Kf14kRQHwMFMS4ZAQxNgoEfiACpB1uuAiEAmYKPLwA9vz6m3NKbJtf20aDLJHlA07RfyLrx21rCKAE="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.11.0_1598283860079_0.6699662180928201"},"_hasShrinkwrap":false},"2.11.1":{"name":"react-query","version":"2.11.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"90fb8a471c1798fbacb173385690492e0c525dd6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.11.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-W67fQqAVJYtwylKzL6cBnNWIGBQMNuvGrOcp4r6StvOqd5zPT/KBO57pKV9fnQkdeIeFYFyYwNq9UNjRSZGWUQ==","shasum":"4e8210c65e95d64797185e879d7d3a16e356f89a","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.11.1.tgz","fileCount":33,"unpackedSize":629617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ+nsCRA9TVsSAnZWagAAG/sP/idXg0FnClMDnv7go9BI\nSHpuWljzhHCnTvauU3boi5hRqcE0NIkeG8XaGHpPZ9AkLTijkS+rfMIWhijt\nybk5pkRyw4qixeWg3RNHlZ428fzuz1Jn3CspisHea3iwgLMT65vnR5nnl1sK\nubZFLsncor5U1oRUkerCsdYHlTPYz8lQ9jWQvJ8EbCNbGS7jqxhxLjiKa0vJ\nujmAPXLN4GyL12RWfPiCNvbkc2xlnOR7w4lmdttc5g4HwTgodoqTcoNE/kvR\n4TOK0qPxrZTSXOzb7fChwMcKP99VJ5KpeMpPQ6t2GE71IgBU5yHXozLBean7\nMpqiz5R6neqZuc+I4U+Husv9bDZQjGrtUvGITAkw5T0KiGPKglviutCluGck\n8fNTcV8K0Ib8lgiRPTBSSHPRmklY++yUcnLc9TqpDesZII3OH13ByEtRtx7G\n3+UVzY6XVxKXRKiTatlj7sqMOVM9g2BfEMxX8iR58FZ8URL51H0BbAWcTf20\nZd2xjviRcpg1AR6m6UhQ9mnwxjwwEcSo0GvyPjNgikoBfNrlQF1YWKObGTwt\njXst5P8erPnEhvT1SNUMJqftbDghQRsTMiDGEh1Gx7GUKmeERPKXT2OesMko\nOj612bglYHF5dljhrHrfcDRt95HmUmiWpmo1z/hHsd1uFqk2ToWtDA+lQmU2\ngqdH\r\n=wSN8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAekaIqYMTANE57V826N4e7Y3/QJcnxI3XKn325HWyoeAiEA7HRA5+CJbP7t0CdDDX2nkpclKReXNDw7nBdBCOK41MY="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.11.1_1598286315531_0.4462385373719886"},"_hasShrinkwrap":false},"2.12.0":{"name":"react-query","version":"2.12.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"473af3d5aed3e21cf80ae67027461311d2fd386d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.12.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-BzKC4w/O3zpR8QTCuiC/avWj/1MG4yLdMs88ErUUW/ClInzUT7Nj3nYtzoxSOo3w5QWhcASL2VnwXI+AMSeFcw==","shasum":"472b46f341766119793a255ae9adfd89ac7bf6b5","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.12.0.tgz","fileCount":34,"unpackedSize":639045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRBi1CRA9TVsSAnZWagAAZNsP/1KI2dfj8JjZKrBdUeac\nsKWw2SEiFB+3Q0bxHvy+dP7pVepZbqhN+xVVJYFDA6blfx83YcKI6o14usI0\ntp4/3Rf20ZbozvEA52TE0WdympkhoXQO3HwQHGKD00BQo8gT/2QeuEoaYDFD\nDBTDK75oQ7XJxeoDrpIKAjdzgeePwBwuM9RJF7E0E0lTv1S3lImZZotWQzg8\nS+HXGg2YIElV57/S0Y/PI0Joa5n2FjY91MGUnoEbckqbONCjEZXuKq7+mHJV\nEa9UhfuzHHkdt5ezIUF/0YoGMQtiInH24/LyabnIVFhKW/xm/WTfJBPVNP0c\nhHLPvbejEIF0We/VvfXVzIe8g5iUWThpIPiui9I7BmOe4ohRt0kAVvXA5AlD\nn4+5cViaVPsRFsvFfRyIezcvC0QyKi+ak3hkDanTe4vP6zHwb4CH0CP56ska\nw2+TorL2a+7WjgHlDCp5Nab4IMpSGp86Ckr9cN4Saxo/wTU7C5Gu0c9TYb5D\nYoYLe5DnsryM+iubHKbb/jQ0ncsavuygwIzzqF9Fy+FBLe5brCZymfC/t5a7\nBQXF8VFHKvAyIOozGu//q9kuJjeMG9ATd2F8iUtCkvNXEIm1Vs/fY5R380Ah\nXuZ8651Djt4Oi2uobE6bdxtodQiX/kH6bal6Tjz+bTWGKT8CllMFIn8iRUOT\nysmQ\r\n=kRx/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJLLHpRNsjcXqmMjEs4oMC/4r5wSqYwj63+nZ+7HO+iQIhAPCMP/6VLC0BVQ5arlqD6FozL2qO4UNubv8+9+HQW9qs"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.12.0_1598298292735_0.3749295606601888"},"_hasShrinkwrap":false},"2.12.1":{"name":"react-query","version":"2.12.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"caa6522a72b3338b610b5e8c207b3b0d332c0784","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.12.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-KoIB/RE+hLCKjoUkPbc+gq4/XscQd0Cx9qryftG91GDykfEe47YtC2YlvKv235UTYWNXbFgByAqXrNIotXtd1g==","shasum":"60cfdaa2b2c142af5b169f4efc4def739222e8c9","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.12.1.tgz","fileCount":34,"unpackedSize":648995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRCj1CRA9TVsSAnZWagAATaIP/jSbOX712uWZ5NScK6rk\nuoc/R4GpylutWkcyNNTIymQNeeep9EEAxQdslWB7wlZ2dC/HcnnLBDArPIaS\nLh3zeAJBlO2bzJ0VeawfKIoWarK+WjHLK0RxryymWgKN17KKhxHV2v8se6Y+\nkf6MMncpKNgavg/vLB8OcL7x9d/hEYx9Np+0Nx0dBp2o7lGwjzJDsFOXzJm7\ncyBsPSMPqtcM6rTLTr5rKDCp3fPtbCkcUbSBZa1iBYzx3k+w/4ZhlcZzO5WR\nbYJaVIodNsHh4DTfNwhXeVNZIuyvVD7PNfwWep7WjovlwC3siMjulbj7BqgA\nwe6sYDpWpOXgYYXCoDbJuHhzQeOBio6rkLX6WdOWd48zh02RPQjTLRZLqsGh\nUXqusYsc0H6OFEuu7TfktECMgPHERh+SDwmZo3cRnXp8RsLHLdelvX/6PBnk\nwZ5LW1lUhOYibl6G8LSVlUMB6ZOl87KBZYeC1M9SpFfe8Jas2LsyxLkQnl0+\nyOyanXeYq0IEeWHRJWXC0ZWCWgsap9WxrIeIFRYFBu/TpkEWq0XbWOB64iNx\ndusLWsLcZGyqojEDnZ6Wx+2CgMckRY8jqRCHO1kzYy8R6AxYyoxso3EonxQo\nj+RKKRClfmkCblR21gR+nws1RocmAOvkYjGoxpvuIqH/kgT7uHJfWG3/6g/v\ndKF9\r\n=7V7D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCXZ6pN4KzzLrMtRUsgpY+PZeUQIteOa7gc/DO6sBXnQIgEW0k/PYBETzpB+ECM5JF8Z3tzxd2tO9favyroTaKcn8="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.12.1_1598302452371_0.2895007517841086"},"_hasShrinkwrap":false},"2.13.0":{"name":"react-query","version":"2.13.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"8470092fc2201d7b3fc65fb989ab788945c59b3d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.13.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-HUV/pcnovUVUfjSQ/hGtPa5/TSoJfEC/9n5btlqqVNvpko/NSZ/jBROPk4IP4Kp6XTbxc7F/EIijyodM+30FnA==","shasum":"8af23c0c91d41bb494c6ec0bf7660e6e21c2fe77","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.13.0.tgz","fileCount":46,"unpackedSize":698667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTW0yCRA9TVsSAnZWagAAX2MP/jDS9k0PlGOJRNF5XaVF\ntY79Uw1WL1kk9o4eZnxt5uyD+eyya/A6o1/cRTn8FzYueuM6aokHop2LcjHC\nRCIcgIqP8EnM6ez6Kk/KVCKJzfPwAo56RsI9N2n9T6gk7dtUJKtiNKoAgD4n\nhm0TCTX9xzreXueaAp5fQbjSBYjssrJFAu+e7mi8qi0NShrN+8PNn1UC8cns\nOgXCY8VkbojlcafhZiMLsLF7meVeaoEApRQdABW+lWDtInWQgBs4sZRjMStL\nbWxPmc8tBuuNEKYIZEo54FckcpGIVQHGVPzt2Zrht2mN5yTXSswBS4gyZV2W\nKMy0pfHxhM0cToq8Vy2g+N6gZjT8NLBnq1SROAXBfxchtVrkIHN3JxJex5LU\namX3r3Wb1KORZESiawrN5dBi7bl2DL9Pj3vFuKge9WvYljrH0oF6QWa5CIKL\n2pV87g/nzsK8dCPgC60b9WsW60u6y/iQ22WVYD8M0XhCmBkIdUeR1q6q+Zow\nKx/UZu9W1LK/YPzM46Y6iKrqMII9EVEs07tGgPS+24aV9CeL8vPejq1+4t4K\nQGHDCeAjg4GNzGAuNMWcC5nHre2JZqRnfpG1rVz2DWweOOeRB4IkRYvApSCq\n0fw43AxUaV8kwh8Y0I5kgOrfRNTJDaw+by6p7RKtAD5mkAA6KKpc8IAEhMaJ\n0+3z\r\n=EE9t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGYMWKuZGJv8dAhhjfSBNy+TZHJJ5d2pMfTaG8bXgoanAiA/+P9XyicEfW83l7ALTfkK1358mulCDGYVpQKSP+x10A=="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.13.0_1598909745662_0.4794179237213365"},"_hasShrinkwrap":false},"2.13.1":{"name":"react-query","version":"2.13.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"52607f6a7eaf5dab2825b490ebea849928a12fe8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.13.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-PosCQJ3ENaT6+vVaN79rGtpZ0BOeaREQuM/iiuNMQi+XWQVWMJBmDiZin4yk046CjbSTQy6lm7kS8QI5XiuivA==","shasum":"1232dadcfded18d7bd886f421a4a4662f0992830","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.13.1.tgz","fileCount":46,"unpackedSize":703776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTmsjCRA9TVsSAnZWagAAs+YP/j9QJpPlOG4wWV1LFK6M\nn0V5VCeXFYViMLEvUtQHbeifMAhN1Y4fiaDhyCFocI8cqmiY3S8J+lSF1ieW\n14kGetWE/bVTRdBJIaGdyAePFjihgeg0/IKW4s5afya/S72W5dHFsnAx0iNn\nn2M4IlCubR01wiB427gANICgD3qDJSWEACOEPRERnv95X31hjEKO+YW5He2m\n8QgPZoJRb4dM5uSBBaYHbiLyq+emhLEuWwxsHtDZyOLIhKEPX8rE313jyw6L\nCrXeIQtDgONY4KOxvHuEqJykR+dF5B7rOrlcUgFGwyt70ajF/ViImD52Ccbf\nD8rvAzByZGkpGOv2cwjD+jl4Y8wLGvmGBXbVziYgDBbmOaLEuTnatPyx62/t\nTifb+veVui0rMEgyQru6O/AJ5t/qy3x0E1BJRouHkM7+eueYSAzMHZPJWnTp\n5PeuCOmhJ34YUScf0YSsFUsOCfLEw3y879/QWMOkvuw4ZMawsqyzDX70MRPZ\nieCYSeqEtUWdmQVClbaRwqwoxvebevzUK3lw6QhAnf9EgVofj74s+FVLWUrC\nm59bRwTn7mK8QcuIpKXqNPpuz2LrSo8WNskU7uGgdvUJ32Oi33dN3WyA6zz0\nlKP4c+2p/Thr5hKy+qRX+4FT/Nif6GESmjMlWf4Pb4S3cu0scrkefdxWUTbM\njYoj\r\n=Rgde\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNG3frNm0oPKWk2eqVzGqiajnKpz1PM9JGNOE6Pt39cgIgJ+pUBfNSB95KMxUAVdjkhWn5sVVF/tT8roU0Gke3HYQ="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.13.1_1598974754435_0.26020168307343505"},"_hasShrinkwrap":false},"2.14.0":{"name":"react-query","version":"2.14.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"b3c9ce877bc53870b1345a90045ae61b03b8c7e4","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.14.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-bKga3293aXX2SDmseVnKRbqjSi8oYmtEo4OY65fi47a+qbK5b/+PJNnagfaUoqiEiCOrt/jFP5SY1hhdiwzkRw==","shasum":"8d050ef92e8e0385b056b31b98330ff096a61b0f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.14.0.tgz","fileCount":46,"unpackedSize":707257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfT5RxCRA9TVsSAnZWagAAgtkQAKUUGh8TO1htsucyzXNR\nUFrTZvt7vHR+P6Muommgh22nSfaaAOE9I79uRiOIyACrbEQlDB8bOs4W3+YO\nVBE9ea4j91VUvLBj7KCERc85g5Td6ym7YwOaDN51pEDhvD4PGZLJA+OYwnZZ\n5Fj/Dh1mIQefsiaH6gpWsvtq3V2SYyy741Kw5qROWstfdbPniog1U1Yh42KP\nrnUiPXt/3p50mi/a/JCPT0uPy/Jav2guIbR3IFE85KLuiQf5Zr2M2qrPs8Ki\n6ULDfUd1QGxkrhsTgdFFkjHLb6Q5GLC8KTAuOCGY82ym0GeTJUPoZuH9GpuC\nEy4LeJExDlM9kefVs+P5/9DWQt32K/S/+5P/W9Wtnlm7/K/kNcrY2kn8F7wW\n2HWqR1QLvGJGYEmCW1vxbbfBvbioxtVS+wvOSW4AYpEiLDgSJRuWINwZOJKz\n5pgUaPEnP7ZUBrdbm80kC4NREYBRcKYm+r2WylfhsNZdUvgx9ESKC2CKteQn\n9+smjGDF36tGH2aW9UZI8WVa2ixrMCOeumrCHKRJT3Rlo2UXcryu1sevK5pR\nNbMoiG/OPgyVguW1O4lbEV1OivVVh+Di6YxpZfFUuJ3fJEOOF2McmpZ2ZjcZ\nhFnZrQBkWgNTmIAFckrW+m4IMabaigeosZwhqgbyXvt7n6YNStQcy3l6eELc\nosdP\r\n=0JEU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNZF6v3kvz9JXCwW19S167Mr9yw20mMNc82/94qXsH2wIgTT+upXs145u1+uXVGBF1jSNW9eM4Cpz/rb99smVmv8Y="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.14.0_1599050864510_0.3486146804333303"},"_hasShrinkwrap":false},"2.14.1":{"name":"react-query","version":"2.14.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"445ae1fa1af5f72d68c358a6845f71deec3b14be","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.14.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-3NONArLC0SrYSOmdJMHBGkQBNFo76YjLgN38bpWXz5NIeK0qaVxjwqobfipSX3N7dsHbLGFV9jImkky0DHLfoA==","shasum":"d4a0a721c6155fc7dc682e036c284243ff48f74e","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.14.1.tgz","fileCount":46,"unpackedSize":710671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfT8AdCRA9TVsSAnZWagAA0w0P/RzZ7pYTu0m6ZYguuFgH\nNjiipMGz4Dp3ge0h02x5ceZ28LNMGJ8YQFznElA2FUbvWgA6jyFTcMh0nSCD\npDI0Z04TS6adcJyXYrO7Um/eLk4JhV8l9xasRVc30ZgyAh9f7iPdLP3xqNDN\niCwDLJVZAzho4DvVaLDMrUf2ZHlepFtZ3E37vKLcoewGZYxvq6hQPmJv7BF1\nTh1G9L36e2MTrC+ZBFk25TuBRybQxB0XqqRpFTFisGuREHXdbgFOdkjkJRou\nt5qETcD+OKk6+aYMsqcqI02/UU8uGu2ec2Ep2D/eQ14Qk9bxzRuY5s8Y4csv\nBieXy47B8M9/R5t/kpeW32N47QB91lzqooIAqliA5kTjRZ+pGtlcUv50mtmh\nzBjSsGePsZKUqkpGe3xIobqj2R5/uzrhAgz04t7X6xe+L3s8mwd5xhxY9Ner\nRA3QwdzWXgEzPsAaKIGbaveAglQZzUqEfRJA+nofZWMUo3PNpYPGrfWFkBxI\nuTJq95NlzlzLJqN/x/0bwL5+LGQ0IPCaoOOjIhJZpfEDQZlFKm8+mPqQ9zZV\nQvcs3Wm4qMyHyWLWAQg97PTJDADHqkkQT9zxycpXh0Sc4O0rOowlhNpNodf1\nXiuSqfVVYqlFYWqLL+RsK8A1HaB8mGVykNA377XITeAyoJyYAssLAOr3ABtM\nmTY2\r\n=hvbS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ6G6MZMsdWxdoYT6BBlrTsiy5DEgItD4C4qtiRd23QAIhAOuA2fZveAYPSfseK8LPDfRYb5TanQQbYCSBwvS516Hn"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.14.1_1599062044575_0.03600770410822629"},"_hasShrinkwrap":false},"2.15.0":{"name":"react-query","version":"2.15.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"4df81f8a4294bf549747969f6e319784546063c9","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.15.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-DWEg4PqsLu1PBMuEZaSsBWGctgZk9AbPwXwTC6Hb/srm3zWi6/6/XaFffcybOFYy2Y4R1giiHGdaYR67gy73uw==","shasum":"e8e48a84f92ce9ee33eba59c2534fc2d26b8df92","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.15.0.tgz","fileCount":46,"unpackedSize":712549,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUbg2CRA9TVsSAnZWagAANS0P/2ifuo+hX0avW8Ug+Q5s\nDLqil6lVnR9HBPiVu+qs6Dmxkt1sSm/CskpnKRo0mZogmYkGVlbbmanB9jZq\nIiVWYx+AHA7CBQ1qxacauCUoC2OUdTc5XEXQmoV617I8p0FBY4VRPK9yr9Tp\ncy9WkCYd6xYw2Kl6owFhPTX6GQh9BIEMFuHNc0rb2CZdiGBUhhuiZA7jQfkq\nPoiCklrvlGY9UeAcLCy2L4uOoCLNofZ1vYhJQOaN7oVD5WSZwOx7ugOaFFYv\nXAnWwpf2IiwlcBbiugBOEOy+TKn8lVYw+0AbQEzIOTboMV656jHfcHSQhIO3\n8fSHuRDy76dumLAP49Vbnm3SmFnk0aduMueK3XqTym9W3ADH3ntpJnekkLE2\nZxA17/HNQnW2DtxpI7pKO85uon4CEEDf1wiyD0RpMoC3gudaMqYeXisg5BP0\nvI5cDqzAAPbNHbVuMVrfEUrN5SBf4jjcwVeil+uasQ/cR6/DOmH0q8j60YnA\nGiRU9pOr+WeSgHO8V9Gp0E5ySpg3uttMNUTmGEUbYHLd4yT+dljoK52G7Sal\nPRR0qmQRHnuWw91CY7PnZyJzEuy+vQXLrHS+OC8U22tSvcT6fyWPpqlN2F2K\ntexOt+uCaXfYtDfFO8zmo05PprUyFjeWwKzMEre35nptaKnNlsrSUV/dBcdL\n5G/5\r\n=pB+C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIlhaGRyfWjX+BEq/pq9Nl0NOhasVaJ4IHIHb10WpmPgIgPEMmNHZ0kSbvZMW8ovctd9qhfjHcjzF+NtKPTV2ZvU4="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.15.0_1599191093719_0.5102118389105932"},"_hasShrinkwrap":false},"2.15.1":{"name":"react-query","version":"2.15.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"1117a516854361657c24105897631edf63263a1e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.15.1","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-QsdxAxT/dj2RckrJQJQtlhol9Qp7Zuq9EitdWs9I8Y5bcueuAc/RgL+uwA/CXQ1Q9ikskyipr2dX1SgW1xwXNA==","shasum":"0aa456c3488ec58193c74d6c62aee0ca8516c1d1","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.15.1.tgz","fileCount":46,"unpackedSize":711210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUmfECRA9TVsSAnZWagAAGhoQAJ8Jio3e0CKUIoCg43M1\nDj7iTGJhdYKsCrOX85rYZM49szU+0aTsUzkfaIudbgFk3s3fnWL4fbcHNdDS\nlzQBf49i9S8rOEA49X/Bd9s0E48oo9qkhTQGgCqDweLB0z71qIVEFfe8Bf98\ntiyF/WS5j7BAPv1fIQKUP39ogkhGZKSBl3J2TMTYJVFwu+nmyrMGQ+5SfwpG\n0r8W0567MojU+X4p96nO12KEnJvJwOySfQ0Kt6z+ZaKcMd5d3HCJ3+HLIZzb\n82SLSO0fnKIkiH12ne0AkiiP6KOmZ+9lXehP6/cGRsN40gqGsT0Zix0z0FOR\nP/8GiLmHnaS8mNO+1669Pkkn7RA8tMSawDiHhXm6pHXWd1EnWQf+/2DrbTFR\nNfuZsUtjWCSEII8cN3+ixUzHW/xPwzL1yiXqRQznB2UhZJiDe/cChEl2YDgl\n6KbQibmi011vnaDKiLla+BvRrxZmc4JmVx9lpSnDzpa+Ig014wDkr2hiPQMD\n3UYSWPpjjeTTuqMHbtdTeiueUPaGi2HiNVtF1GU0ezCh5q84xjCf40M6a0S4\nZD1Mvc+851ppa4jcybs6FNR62zgPsfOi9InSt8ctTFyLQ9FRzp49jsqUIef9\n5IKbFmywL8Kfg0AmhNg2nGGn8EDh++HUyFpY8p6ffxPm6ul1uj29ixdjwqtw\nVyVm\r\n=8NU6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDf0+svgIa6ih5Lj3VpUvbx+Pj9MnYJWqNpT155mjw+aQIhAJFV5WFtmC7AFJaPSfs0MSRyGfpl9EFjMYR8ya4v4PWd"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.15.1_1599236035199_0.9066530440177079"},"_hasShrinkwrap":false},"2.15.2":{"name":"react-query","version":"2.15.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"e0cb76f058fe249d635c1fa00aea39050588c6cb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.15.2","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YQds2ukVePtc5qQ3QPPMD1QUKUSF9jOZfg5N/VIBimEUMDjSogYQeeMn2uRoRA7qgrtHWc/Tgg0Q4An32FvjSg==","shasum":"50a35f2bd353dc1c558067537cd1edf4d71bef29","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.15.2.tgz","fileCount":46,"unpackedSize":704359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVSUgCRA9TVsSAnZWagAAI9AP/imvMHjgf3JHNWCXQSku\nlXJJKUyQuVIo6WKqg2dCnhOL5dPqbsCFORYo1hUhu6g3/9hGfpHgjeps1UPI\nhYU6j0kw3IuOht25gYsxF0+Jiv75V58ezdJlN6T9uTO5/sRF2qwnXs61hy4S\nPBtAADiWFp8X8ohDv2CiXfCqUZmGxtUmCD66XXNt5/goYoldPgV9rlBPFUEz\nKTKe3kSNUf/aRXOZyt7tOQvD00pktvZArACBoGCWw/66cZ1pJ/LjN6l+pzSs\nD0S6mRO8QahyhzlV+c/E6uQ9dOj5M1dVFetMvTHrO2T/d99BY1i0YZlSBQpt\nLNhPzeavFKVmTGwOgfkVV3FhK6xODsRFdOn7bFxcrc/KU1S3yJh7xp410GNS\nKAqsdCb5UlAt5xB17oWR100dG5I/J7JnUtKor/UCZtpUdZnNfEfIF+mcB9Aq\nPqg1WW7AvHrVxFdjRGblw2JbyRi3GZw41HapLB0kDI+2pKz9SY+gl7W1wLJQ\n23YeZvZjhgDJWCebDIKSbKi55b6hZVxeRiBUMPNFNKB0EB//tctTxDleIUC/\nFIn4Z+pLUFWWsOl5sQSH+c7XbiF/0c9+CE6u5lvqsBm/GyWCvLBTgb6nWmx7\nKv6Kqcf7xNyH9LTQEa0TgjDUKVdy3JD3rw4wP1KImw+X5dDtvLWbXSrbWGP8\naneZ\r\n=wVVL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrpBHZ8SNygx1ry+TNI6iK9S3LehvZ3h7DwSrA8e4owQIhAJqe9clBmAiweWLSg87vN0G9lCpBhFuVFpk8gOREag67"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.15.2_1599415583434_0.033462388229033024"},"_hasShrinkwrap":false},"2.15.3":{"name":"react-query","version":"2.15.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"ce7acd0cc6b37c15bc5af3765dd8da645ed63bcf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.15.3","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-dYXj06PnlqEo+RF/6kElxOccAbG9tKJQ4V1gFo3GA5SiuHWOPRH8pXJRC2C/qPaYuCrzFA4/wl9++/XcBICK5w==","shasum":"83226d215c524a4cb5a188338f3f7306465d418c","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.15.3.tgz","fileCount":47,"unpackedSize":704422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVSXRCRA9TVsSAnZWagAAqjQP/iChJHnJJEHqBWOLtFqH\nRyCF5dF+gW3y7Dx94cB/EWYv6AnY7UqanOSNmIP5hMmDP/GavmKuXuQSwV7a\nvsuopmRc9JLDUDMqKwHwDK6pN1DMpgchID9GLraCEwksOliufwEgpRBjdxbW\nyk0tdLvlTxqGNcbrdbcO9NfKlsY7MblQPdM5XtQrT/PwtHQ62vnjBflTQ0jb\nerj35LBUP6jk5qC/jirLowwlx3EQP21Xn7tueeCa6zqFd07RIxKBPUtVrmSb\nVQoGTvaOjmItXp2jQVlZWby5DYSohMXad2WRFXnP91IAFgttnAbzA7zMsZGt\neyc9gTI2ylm+rVeegpoVs7FaxVjKCVhHywDgT4rPSXO8UuVRBWZc5zbknIm3\nFSStCaeK3qDnm7S5wp1wg9Dx37XpOcS/EC1IHz/3D8+q9j5d9y/aeNueLC50\n9qof23K1QkATxHJ62EuhUN7NYpdh9T2BmhIOowpGr/0l5iZO1ErR890uCCsg\npg6Tvgoeg5X4GYZkYwQHFRZpag+2fSiRVVBvZBMJhkv1l/gmS+o6qj1MdpXu\nDe2HSGRI7AIuUEw0ZUtk/vstkLXM9M9m3B+sRFHP+StupJCY1ddt9LK022gA\n9JLdenn5Q5NMFQYrhKECoI0hY7E098dLq1Wp6s4iEZkJhmIlTCyjiOlrm+uS\nYQmH\r\n=mgYI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjJvRSeuppToqnEuGuFBahmHCcAFfhyXupSizPEZJ+KwIgDb3Sojp0svpfc51DztrQwomcSpZ4Paf5TL2VJzubOtw="}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.15.3_1599415760880_0.16788964118746086"},"_hasShrinkwrap":false},"2.15.4":{"name":"react-query","version":"2.15.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"7730feeb9b1c9d4bbb6c6937664615b6745f8087","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.15.4","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gEF2Ebe1MtiyLKEaVEIlRMl6rwvP/RVwP+Xf68vhXDfD91IeZkkW7plRjoaHa0/NeUPM1AgTHb1Z7NtqaYDXjA==","shasum":"0447510fc30aebba5a4b99879ec4b7155d9b3f20","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.15.4.tgz","fileCount":47,"unpackedSize":708423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVVA7CRA9TVsSAnZWagAAYFAP/0jhysJ304Mo7SLIDI6x\nLSCWrYYLCcgaWThm21oEXVLCIM9zfsb9AXa8Ef16xSo36Vc+lwaIorgpRiGF\n6Q/xVXOsO7nr+IhfRMzZGfqFOuspkYr3HxiTf1vKbfDbyR3tOAEc86DfRFAd\nXddlJmCNd4d4mCv/f+sC1YE8Qb0nQbAxGA0NJUwIJaOaCbTTC9L3iDugWn9s\nnMFllrO2tXglVmWNCYB2Pf5omgqeIi4NTHsPkrULmmyegCaGp7jYGyGy7NlR\nDBDUpdoJ4RC8aSENRpM1YRICnHt/jHfIjza/HYVplizKimzjBcUIgEltw666\n1hs2yo28K61/w0gKPxvzI/DXflQR45UnhE8NUPpZ/Wy4hZxlhVyr5O4XFv6G\n9D2TkQ6Iy9qRI4lO59EG1CnHBIhNJlstylLtW5+eUUyjOKcpGiIMPquHbCo8\nGbfwG4fZJY8nSY6rkWiSo8O7AFGU5MirJVwCS2+ufFZnTuyus3W0USpPILlV\nb0WnpKbI7p86cqSWZyLbhz6AhyEhqckveYtW9hRK9sOp7n4gV+pCKRTL1S7n\nnq0tixFFqwmkuTv8H98qf+whhjl0+p1OCqS5+qXRZpZC991kI+BX16ElXtfo\nI56shWjcqJ01RftsN+n779aHeZk25J88dbYurshI/rbiIB5vpP2Ubb2O+eUT\nfnBj\r\n=47Q6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC124mtavZvs6Opx4wo1YgRihwCRKsNg+OWpfGpNopoSwIhAPKIdDf+mRs0W3yJT8yoGhl4IRxblopRMtjFRovY3HNq"}]},"maintainers":[{"email":"tannerlinsley@gmail.com","name":"tannerlinsley"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.15.4_1599426618717_0.022188316695605614"},"_hasShrinkwrap":false},"2.16.0":{"name":"react-query","version":"2.16.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"93db5b61246dcd381d699054de48fca685bef73b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.16.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-P70M+BzpHXG4quyAHQOkL0DDMvXFCWoRJpw+6L+gfufIisNodYfuo0K0m9/Bw3Xmg5IvJLFdDSKdFjA/y/omeQ==","shasum":"21771d020fdaeedd60e55c7df27b7339f93db4ce","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.16.0.tgz","fileCount":46,"unpackedSize":693565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW4hwCRA9TVsSAnZWagAA7wkQAI7v/Fc6hv0DVGDme23p\nvn+WTOGVD5gRdeMmpZ0K0NZPRJKUEktD9ofQJC+JnPnlI3iBtCBKnwLN5EqV\nKh0ZNAH/e9zQTbua9nino7FzgE7O5Q1v63/1KUFXWhd0x1U5gM7P7xJU8QGu\nPoYLMucacM9T9WfalP+XemYKeWB/BdsPKZc+FAS1Ji4FxCxVWL27WAlN3da5\nJ87rKSoIZQG+wtHjIMyW6HJqmZ7sxcRfPRUlAexIBgUt3KC/WTkSXxjbMmN9\nPjIxdakJPt9NHZi8aG1Ax+dns6aAAqnED2+/aR5AJt6fWJZMD4y+80rEGlnS\nVslmWbtgYs37gY3CkbE95mL4Gk5Ft963xB91Cp4YkHqQnPBrN7d9P7O+ej3d\nkJlMijryL+uz4+aT/WTpG/BYqghOmkZVSrKgAMRd6W1VCceeNWjwlI4MmsSU\ngfa2uUwbClIDiqDmQ9qyPx9f5aRDg/kYHGKl7y8mDPy8NZcAdvlU+qGB768Z\nguQl51wzB83LbybuNncd8FvBtK8XhHZJP/gKs6cnUqjyckxs7sj8uZz0rJ2t\nL/F+uSGGWkKsdifgy2xGSgehnwI8sRJXVp/jmvXYVGQCBeD1L3F6lJ1nKxON\n07liCrnISaA7Sio+Js1T5Nnvg4pxrQ2g0QqzMyEU18LUhp8JJ3j2F+CRQsGF\nmrqa\r\n=eZrI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdJq8rNa6blxdTmImH3yX+tGIMrVH7v0llaN3NudJZfQIhANjpI0CI9lbTlSs+qutjBH1ZE0zhgWfqdxByJT2R5C+f"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.16.0_1599834223773_0.8804252704064215"},"_hasShrinkwrap":false},"2.16.1":{"name":"react-query","version":"2.16.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"index.js","types":"types/index.d.ts","module":"dist/react-query.mjs","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{},"peerDependencies":{"react":"^16.8.0"},"devDependencies":{"@babel/core":"^7.10.2","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"1eb4d00d6516d4531516d6db29460f27c7c24d2a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.16.1","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-VDR1+NpU2V2oHF6PS5ZElWGzHKM2QTGnMKOSFJiN/7vci3/tsOE2ydwFn3E62n8KkY7i1TwCh1xakEylAD8nEQ==","shasum":"ebcb24cf3eb9ac5b406e8f9017736ffdf2e87dab","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.16.1.tgz","fileCount":46,"unpackedSize":700921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW9DbCRA9TVsSAnZWagAAisQP/0sim1bT1NkyiI/4Ykce\nfz67mUEvg38J6Q8Y3FYejIkCVjbuKHhaaM+ynNf2crqz2tJ2T+jEOikOTq2q\nD11Fijpy7d5xpcF4XIozdqllzk9UTR0ty8Wjl35k1VkvLA7ZW82EGNeHC0Ef\nkZaAwitFXNa9hG+UE6JLL5WjSC6GEKUMk8bFoYa8m2eswYHmpZBEQj1iqwF3\n3QBJG+Xq3hMiel1S2FHAbiOLmkMAiLVBAepoKJMsMQlbhwg+LQxJ/w3SPeOO\naUUtGK6gxBdKK5rWKtZ54RfT37K4CJQunvE72edQNNM3PlgLA9nFCcWXiVcD\nqQfIgO5y838YvpGPXFnOgWXCM/jWOVMfLwqlS9p7BudxlP4SyPWEL3ewreEw\nZb5I8Lvq37PaAMXnUdRhwdzhw0kvdhwldffPXtHwraUA6r3/4cNSlnJsS0t4\neXNMEKjKmljsk8wlQ13KCXUJgGpJ0FlefKRCQi24zxuSRealA06+YQ6ae8DT\nMNZeEiefhDua1Cg8EzOpRAZMVEV3fZKnZjYLFHfItFi6wlkk8i/Kg+FuK0MU\nG+zceDZ7/dxgYyGDQoVcTBYFdaHpg1mNbadJnM2h18rtIvRXzIa99SYZkK4h\nn8STrUNRmpox41z0N98sZqAXcKMtmEz22Nu1h1r5CSo4twbCTYFUxAeP3B+e\n9rfE\r\n=cM0V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+OOcPZTG5jLDWDIa5vLrVnRCvasDIhGV7UFcCtpV8CgIhANo87gg5QLlooyytTV/nALwSon5GBfBMvszg91iiZBUK"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.16.1_1599852762650_0.14190889320990374"},"_hasShrinkwrap":false},"2.17.0":{"name":"react-query","version":"2.17.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"3d967bf8ae9404404d20824cc4ff263e6aa0f757","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.17.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YtJ6Oot1vHyAHmllPdINEc0+3NnkjIWUcXZBUiScf+MpcRbzn8zBTc+QLF8dta+Zfm/HPHz1fFMYjAmTOSc/zw==","shasum":"ac6c1a17398ab86c65008d7a9a4c0d5385626d10","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.17.0.tgz","fileCount":95,"unpackedSize":841348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXOXPCRA9TVsSAnZWagAAj0UP/RJzO079k1woG+Bvr+0u\n7j3yvLGY5bRogBkP714opawHNHwSsZSWE5bbeP0E9yeFc/jjvGvDt54V022X\ntVSIhk0gzUTwogGZCIb/Aw2r7Jgyi0hNKYegpFrV4Su97OuB752c89CW9ibY\n6SMWaCJ72EEzY07Di3A5SJiQPsOm0o0IFriHgCCr2KlUTzUTwrKkjlUY49WG\nFwOFTI/bd64FDVQDLnFt0Gi1ggwJbveZHqfMx/g8N9ngHKtSpjsHKX+UDi6l\n08tsc2CQR6MSSWGzNtsggLojN2boE0VAqD47AydolnvfK/sDxEE1bSvkcYzc\nktbIhSTCBwv5AwJJf5kwGRkmvVZzE9X/NwbMAPCpXB6L6+kF/gMIHyMfW4eH\n2eZPL/A8xIQoRnjaUznKPvkMHgWKAt8e3BlulkcKB8Mu9U8RhZZRnV39Pj4i\npaTFK+7Ww0XTPr1vGUPE1/B1DJUcov7CevnSG2UBCfUNCNf0XN+iqRokBAcm\nyPtNFpOkQIrj04yKUEqhzfUKPJsebttY65EYeFs37fK0BiROhIxjl/OE0jsG\nqmD4aRZAD2QKtSO9gGNsBiNXMxJmZuBfZloQ/9SSnW7eUGUwOjgzoEKU1Vcn\n2sRJsz27aFM8hX3Rz4I3EUzKYR6Q4wDsLuqvEii426MbOk9IYXS/xVAbY3Sg\naKJN\r\n=3Drd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5ZSf32F358rR1t4i4FusqG/97KNVOwd/EMoLJurEzEAIhANayw+VdiOUeApbtk9xIXhJf3yA+Di+KXujq5zlqfVjE"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.17.0_1599923662266_0.6738420569121812"},"_hasShrinkwrap":false},"2.17.1":{"name":"react-query","version":"2.17.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"065ffe0672f7ac61ff19fb324ab715a45a25d5d1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.17.1","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4fSePUC6wJ9gsrtlrkrK9kd7detdumtfoYSJlBrHMXx+n4ia601z75KpKhEQMizdXlMUu7iZcddPMPs0v19DGA==","shasum":"6f0bf68f7262480ae5d14c50f89cd0eecd50e712","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.17.1.tgz","fileCount":95,"unpackedSize":832820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXiyMCRA9TVsSAnZWagAAoVAP/RomGiaHxp1US8yRyrQ+\n2MW3Pnl8GSOkJpwNyefGHYLQcJvzphu0wHBlMmT6C3+qvB4QhktG6E2q3QlE\no64Uyom502c9lQs/NS45s1/q68jimOEXmU4ga1wLffOqU7zy31+HeVGEpgmk\nlv3HTU+Kv0jrPhInxXarelpaVZgQOLvQr5HeKBuvzAcTByye0OWdxA6/zVm7\nYoS63TpsFcLUj4gQjSW6nXKwgfTDlPvlSA6Up0FM/f1LFqisJkboMTPzWhoS\nclnKRziE7hbVmCo+KnaiaE1BU5umy2lnXMx4nkIslNzXzv97aYf11wPXROkV\ncc05FbCu5cl2T3jFDbY8I0byszib5PXROmuSzePKJiaEDgjSItP1t2lJzRRq\n9lRqTnXF0UG89UpJgkGM9d5Vr8ORZ7r+FKaFpFrnor69BXG5RQcjdyGr6hLF\nD8AJlHjkZeLJKD0HTaJ+pFZYHnnj8/vLzR/EwsFfjQZDAoXRIN3jWJw9mQey\nHdBLwt0uJMdNmGpEQlUrciRqsPp9s/CHYRDk6UDTmsuOo+a/8/SNhLc8oLeJ\nHCC97ZsAqtIcAQk05O5oCLgcePnb85b3ECGXZoYL+NZzBo//ZuDvjNW4/f6F\n/vaI+XfgZSwpQ1Z2Yq+6LobZnaeW49sFPyAvprD2gaYjFQOg2ZkITKsbXx4Q\nXiGL\r\n=XpbU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsPyIYlseDWyKBdB4R/TwwscXouY8tGmkDnrfGJb5TeAiBO90D3Dgm4jpcXwAwi1qSJelPJ77+ddOTQkjorG8NeCA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.17.1_1600007307361_0.8928584494750396"},"_hasShrinkwrap":false},"2.17.2":{"name":"react-query","version":"2.17.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"460ab339c7b8fb3396f63067e6c2d1d249041f8c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.17.2","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-VB3SU9rJQkumEJQF3z0ZzPGdxPz6WEs0Q5CB4gEk/jUp3u3vWd7di6LJJ7gD0uAZs+yiooXbtKNTGnLg9NPrew==","shasum":"d9fd7299eb7bef388ffe8c314c5fa84928ca7af0","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.17.2.tgz","fileCount":95,"unpackedSize":829190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXps6CRA9TVsSAnZWagAAl6UQAIGzIbqt6fwk94+pozPk\nTcsjuudkZTLtQ61yoViRgTVYdsUix/7BM1LjWX50vf1xuSbdUJAJdGxEtIql\nXlUevfAPUAN0Q5eW08tO5ZXiUdswnV/EeLlOOiis7pjI3ykka+XXOoWcCW+2\nna+IJokkFYnAyNIeeFAWgWWWq3dO8PNJBSgptsuxBKeE4OBExe1XjiUCS4zd\ngIL1UfyQLaqA+K3D5wexCQOz49wPTXIHYCyCp/FrvHM8j3s9YaDgAuDzD40m\n5+zw8SJKP1b3szLDc5BArgfUQpInhAktW961P1nnErC4DQPHKCiW9pIvwM7d\nQwUHa2fDRlZR1AAJ1Ss9xeYoXlgdxsTVcSdZM9t9ukStbnXB9g9V0VmwIpms\nvvVTYFCSmLjSi+PI0xWEBF4d+5H+X2P8m53g+Hq4d/7LuVGR6GDeVb0fuKxr\nhzEUi+ba4wItwZNPnTRXcEYrMiVJCgXjdh+8jT/MJM3xNT37rd3YVfT4IWYv\n54QxwuRLH/9IFMbb+g+GEx0qw4LVL3PxFVvfKQU+70QB5Bp4y86T/LV0jxeU\nrXejT2juddufyhVZoc7S4H8rcTj1ptN9vY7V56LGsbAFWT49emHGz/YQRgUa\nrqWrSrudlELjd7yy62mkJ8h4vq+4hkMLYV2zcf72TxOOsyZghZV1A/DhrIok\n9nUX\r\n=aTEe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvXcMkJf/ynPjpYpEY+aIHV/3K7CsJEEo2m0bhXlH0LwIgHn0fiwh/RhXN+IH+SibDxPIr7pRR2FfW/6v4xn1GD8M="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.17.2_1600035641556_0.05724677927429478"},"_hasShrinkwrap":false},"2.18.0":{"name":"react-query","version":"2.18.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"959e19e193ddb90eeb4d1835d44149248b62e992","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.18.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-QFT2i4P2xWQoNJ9pxOi4kyqt/EYsfc4oS7EP8CWtOjOkfVOKd/mcwA51CbdsN80LOdklvXqCV+h+smrkZ8lYEg==","shasum":"f8ca6a401c6520c746945fa96e43dd72aeb38d65","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.18.0.tgz","fileCount":95,"unpackedSize":834153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX/IiCRA9TVsSAnZWagAAsTIP/3vzyA6bI7tMyXnHPKe1\nRmgxPrzHbAXQZIBQQu7MGrTbqYZuoCK/qHgjnIqovc5jcql/T2j2lxuDU8d2\n0RpzQMLFhB1x9w3GL2a8bgNJbw8VJbbYJAMZkLNClQxTHEi8btfCDlB0JwC/\nq5+kUd8aGqhfS1IUgCNXzG97BqzXe00Pxp3EJ/94TmCPh83dd4LIFB3NsRBx\nyWG6dTvGlChDVHZqAj8pwizaKfeyobmbV46/2rqNinc4yXPehRqjKdpXQPCz\nBdBpBV7OnSBZ4zozB6e0iehSWxnx/a8C2WR8CCMRj6FFVsormn5Qw5IZKha2\nQD3jFys/j5qisbhyEG1gfgtTP94gMrBJB0bYDEKLfGtjjsz301Rl8LGpScrB\nlYTX3RA9DM9oMwaGECGQsfx959sGglHUoCrYuPDyQD/jqLbYBm1hh9uYYuDQ\n4hiXlk7xQ8N1dLnRrpAEb+sQYXZon3jG55eU85fKkmfmrOIEU4BXyladDGvC\nPaFxjnn3hSDsEenZTOweI409J4vAbQaTur/8pO0IMz/RMrDkWBmEUpcnWBwS\ngdq5NY+kKtXKTmKmcJ2OHsZtK4fzgTFRfUahNpJdMR2O1sX1oMcz9PEudZkq\n+D0Yg+165IDR+UgiMlHCF1keMotj+7vEvx2SZip4/3AoHGYEUThJqbyqxtuD\nhPZG\r\n=AFYM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID1Y9ESh45L0bTTqwdmUI0HiCKJujw0Le4YYBmf0cg6XAiABIWZP3490FwnDvQtlusnt8iFJRBo2GbXREgxi3UHTAw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.18.0_1600123425939_0.3595813925003697"},"_hasShrinkwrap":false},"2.19.0":{"name":"react-query","version":"2.19.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"c81e309a4df4527b3fed0f304c4a843dc8aba7e5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.19.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YZ/IRt6xGWXh+p+kzh3w3AW/UkmLLij80ITtLUVd47ttuRzjj7wD48VTQy0smDhBNqKpYX1k70ZTzJW/hMt/mA==","shasum":"50e8e964e6cd1012941615e09becb29285476598","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.19.0.tgz","fileCount":95,"unpackedSize":834344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYQV7CRA9TVsSAnZWagAAMIkP/38uTXeyFt1CE6BhljHk\nWbHcfFr0Uxsm+/Puy7MH7nrp/uH7EQB6PXI9qZOB5zTDKl/ZEYX7jzpfj8dm\nIoGCMaruAuzqIc1a12/PVPC2OYpJIPM3R4VwHEGSTKxtD0MkKnhhp4x6Kf67\nsuXHclNFmKXTHSc3sQZj2iNVrvNAEFKNcGBi9LIOkn4o2qeyPdMHojY8u4Mp\nQGnifoO6DfRpHYlOAcbczkKmbeKfpw0rMqu/AT1OyRmC78Cmyn8NrXxhGrvx\nSe6eBXfy75FnwPuSQXIHXLH1maPU3+mb1Ya+RaOW+i0ADx2O78YGx15Xyh9P\nBmmWJYoO4CYVJjThI2rDxiMgvkRR49l3GtGF1dW42ODiVYvpzfw4ifYAdM29\nQBJ2h1xs3lbqrm319JlIVL3deGh25AYc12As67ED16bS4IXmewUNKyyLRFFN\nl8J/oT/P3OKQTTyTFjDya0uPx9HGUJmANx6UW46G30Y24sGXfDSNp+G0Qg5Y\nP07S7Cpc4ZilLUtEFw5+rvmArY4hU9Vl4MFnfMge34cKYCT0WcrJkekMCzOj\nb9wOSvTaPcRBaYdxseTHSPWhN5qp/aNQ3szlQ4aTaZe7SY5cnH5MiD0NyuMo\ngkVwZfsoO/NCAMV7/uMAPRXQuH5COUZnYLFcnPSXIqGhzkosoBjCbTEpVSDS\nrGIn\r\n=cmBP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcUIpBfE79iaCzE8QLpRo8wI+Y058Ap2fMZi6rwKOtIwIhAI5bedRW8ej/rJK5p4jD3oF3JjykZHbg3grtC58UOMRE"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.19.0_1600193915022_0.9203954263244964"},"_hasShrinkwrap":false},"2.20.0":{"name":"react-query","version":"2.20.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"34a7c1ce0c136dc582ac165733ce4f865d9e2a7f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.20.0","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KiAicyjdNbsbREcnVGFBQO6io3HL9v8tsp8acCbMOh1qXmWEceKyDZTnfeMsnKl9G/5OYLFRRohWfybzfSm7Tg==","shasum":"db1498a5c140e379129e39bf60f1536135a5e5ed","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.20.0.tgz","fileCount":95,"unpackedSize":836673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYiflCRA9TVsSAnZWagAAFHEQAISyf+f2T+QDm7OtdBjE\nej5QeCcE1T981igQUX3Qsu3sVryT4Uwj7VwXgXa0klmQGIcdmoMw0zNbrTxE\nJtn9F9c8NPn874KqB+yfj9gEx9eaen7J7sF7/0exx8jl8qyeFqsfxkz8iGbz\n2aI0mUdY4fZZ9HccCDo8WetckQAGL5Ca9aSiNRi0KhLM590pEc1TBpW0l6A0\nidfgGGiiAbd3xjBwIAFlF3C1lfU81lhCfjEFDM5UjmPMaIf5k5cER9h63CGl\nRYDY0xh/pmHuAX6QzAoAIHMWw/EcQOOQ6KRup0mvJVXB3HZnuCRb2xS6haI3\n0efedYrC/AVWGukMOhuS3gLip0cSZ3FhwK3TqTmNVK3r2bTd7m6bJ1Lp7X9B\n1eNCDm1NWscMG8O5Y/2PsyidOc5itUURRDRWzTviifJjhJRox0Xdsob/Eci6\nrjoNtFdqkaE5p50XgllKgOenxJpJ5zAjX974lEQK7jXjsPbT1LlltVOSLQCb\nqxT2tdjgCZ4DI+vD8EemWzEbW/xNv0UdbMcgu7uBTuGTBVYdmbYs1Wo4YJqm\npoiSVRyRdLFoKMbtMvUARDtNShhsy/tkPXipWRR7TmRJUPD0t4qg/0U2LWXF\nsVDfbBZXReqvlgBCQ4OLBooM6Os+y8ERcVBWssCkGFaHikd4AOabZ/RX1D1T\nUGb/\r\n=Kbni\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7NSNc5QfCyIwMIpDQmDYmT/d5gv97hLzJjbpWj8GYyQIhAPIMBUa0oLOoqK3A4Aop6wkmnQxMjIkXB4a0rufvYV6/"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.20.0_1600268260810_0.09055010428357213"},"_hasShrinkwrap":false},"2.20.1":{"name":"react-query","version":"2.20.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"7b44a50441effac018fb04245d27af7c1b749dca","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.20.1","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sHtjBagVT6ycyHf66qkfTf3oVSexsiOqhYDaRw7ubDA0F5WPohdrFMZxxQM1nY+NtV5U5zYjVzirMKPL4DRYeQ==","shasum":"7626d5f2d2066c8fc8e3b673ce83c8fa781765aa","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.20.1.tgz","fileCount":95,"unpackedSize":859645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYnhaCRA9TVsSAnZWagAARSIP+wQeyGq/V+D40grH06ul\nWlRPY1TvWMHraz3MJqZDrJ9he8KwOJmPxRn5EqUMk71ZtqL5CKT4cmcSK6mg\nifnNwuEMpJD0GH6Ameu768ND4/gFg1kkFPkqPMCCwH+mAphayr8hxahk4uhM\nOYvTWTMTWrFyhgK1QiLTWVZMDBEGR63GfXphCGsZn9QeBf69CxeaDxiljyrS\ne3hmYNjUvLjYz0WuRq+QXumFKutu3MaHZM7RcIt53XK+cGH0et5Nqo1XfF3H\njHn0XzRw7sTL0WZ7kGzuTR8wnmoU42M1WTDsM0vkMDoF79we8ahw+GmmZEUI\nDwnxALz27YJ7tFOnzWwyDbGDu26DNcAVK3WBGp3eIuDRYg0G1Ahb701VSP45\nwS4QV8dkuUNIL0i3B5I4lBNYFTfk/y307aX7sBpjBwC/w3ZNAq/4Yc0fEAyf\njMj9m8KIGmBdTJJuzpsKuCTcPBeE8OshEnfCtvZTnU8GMUVQ5uVGUU8rmN9a\nkpK5RvywRDbieQhRugI2ktlG/EAPtDJlvba0yRon6Ai+GpMRpXlV/r6Q1Cdx\nPaLoq7Z3xI/7l3bVpC94D7yN+NpxEXsqlJJVppVn+Jc2iXUdDEpXncTQzQy1\nmo0b9oDG9/NAtvHf3SpNB8vThgCuVXbwfZ+wWEOfHzRO5L4X/e3X2UrPAoXm\nAyIb\r\n=+wl8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG5f9ZEWgVsdUICMUaHpSOgnQQQQ/ILla3RyqAZkKa5jAiEApUcQU8JgcJpBKSxO1/6n4gXIsE++OQ1jMNKQ+65M2ZA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.20.1_1600288858353_0.4913457407548443"},"_hasShrinkwrap":false},"2.21.0":{"name":"react-query","version":"2.21.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"126773133b2f3086f68b361fedf0f0e90f29e963","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.21.0","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zGYj08Jycgpiwcwx62diIiMP8TW2ll3LLSOvBsUtsLuapxqTZDBF0U3tVR17eD88TQJesyE/xIq6nC91qW2Igg==","shasum":"cb8e4b59c06a35455c98b0d8bd4109e7d5424a38","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.21.0.tgz","fileCount":103,"unpackedSize":881409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYoLRCRA9TVsSAnZWagAA58AP/jFdoUUSLT7626/fJSKw\n8k51S4OQoDqe0Ge3/C7jrHk2AiX5HeWnqyneczyp9BFDWSGIvzlHC2o2inmp\nh9rc/ZtOx45GU3G5qv5sp0SoVAkQ8+UB1LWAlvGtOfY2E7TnHZFPEtZktg1d\nO0e9MQZkiaumuLw1J/kiZ1HEt6ut1AzXWIJMsm7QDSJdJBvQAxRRA+hLQZKQ\nHqGDcXaWY6wth6xTdJOSRfi+MaV2OZv4ztl0CVpfCq/ecRuSAjXpGJlrysVT\nk8NPR1BKn3XBR8d2W83wIk5+pIXpr81ysFDEut/5T7fRucoij5M4PVzLLgR9\nD/tx3PskW7flMDZGo+ODIuGvT4KyXU7pxdqJ9mMvg75hVNRUqfLfGIYei8ov\nPR7xLOueCO+vVexohaPevXqYkOKc+j5bn5ZN1X2ND0rRZuVq+QwZgFnIjlol\nbhgbbSgBA07QWX1XeqQnRinKkX8ATdFnlZbMy1YqX5fmWvdmQzFTHC7AGo1l\ni9htCAf30nrr1XkmONm8NxkX3BgOSh/gtG5HIDh+48deGaTr2jlSC7hhiTVO\nGD3brI40PV6PKgvPJqhzEmVkAzoQfqY3/tPuBYUjWeQxLGYV0k+2V1RrKJZK\n8rB5C/4u+CpE9ICyLwHrGOKf/FXFVbskVwGt8jeJfMTH5DHAkIEZn49RaFvI\ntfaS\r\n=F/DJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYETFooD1+tWO4uXG0/d9w/INJNTqJ54oAaedp35+PcwIgRqvpJTACab/1WAVDdXzDtY4G2kGkAkTvXgqrokjAAuw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.21.0_1600291537284_0.6562392024217567"},"_hasShrinkwrap":false},"2.21.1":{"name":"react-query","version":"2.21.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"4361a8803ac413d8e9c86943d7da5854fa37c512","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.21.1","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-lrUFwcNGCxDXA8prdYVXcfnmzQUGSoNjPjQEmM9lQWSxEX9oX4KRUyyOUmDQi/YeM6yPxj/giZANvF37hSUV/Q==","shasum":"ea1e0fe60f12ea9bcf7254fa60797ad37c785d50","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.21.1.tgz","fileCount":103,"unpackedSize":881454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfY1KwCRA9TVsSAnZWagAAkvYP/1hxPmQEeAY0WEks0EeX\nPmKyPVxLOsVKKqSyOZtK/SNJLz+jcL8/xwHvG2+n2D3E2bpSw5YDdaDzhr7r\nWkBdum1lbn96hcduP9F7cRCMQ6+pGE+M5vQTfZ/5onuInIJZLmgWDfKGdIoK\nc8cMVbDS142xVT+oblXhCTixxsOJDI5gFPhMfEJb1SVISiEOLZ2UQBUWKxEq\nHNWvsWpt7/W8OWAwShTE1G/asTftY4nXl18mzL5mFpuywgLAh8ggq9AahzrX\nEY/tkYlYbXE5i64H6sBHdEAb6kXxS/N/ElUOq9D+BAgoRo1NSJXGDxznhsRJ\nFHdkji9005TvqMIe/qa8zNxI8mWb69m2ew9a91erSC+cakw5/CjD6t578dEf\nunwkREgNEdq3A/SteWZtzMNhiu+OOZZRJC7dkrCwPyprmka5rwRhD8SCG1D/\nKnYUDgjMbvQcQjg3Zq1ynGWBf2uMKPasKkPTy39VhcfSWoG9bX+BX+viOmtX\nkpAxrUCyIOV4FSf5cwEjBS6W1VeH0re/XJmpsPlntN1E9cMIZj4hXn/HuSU7\npLnhycnpGR8ajbfbn4FVrgZSmIft5P37YzTNRmWUZ69lep/ntBj8UG+u+EZM\nA9r2eiF9blw6o5FK7dZzZTQUQ2EYrgZwtkbrLxBlcknfxQUI91ur8XZCNxnl\nIlyM\r\n=Ajvo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7bYNG11JO7/sjLGwv6u+OsofzYforUCaK5IrOVqTSQAiEAvwDn58pdAjYtGEO+DXVlyHg2JCVcoZV+vYPOu61GJ28="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.21.1_1600344751480_0.044968524545498045"},"_hasShrinkwrap":false},"2.21.2":{"name":"react-query","version":"2.21.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"70391e83cb2bdac49935ca63b0525823ebd2d5cf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.21.2","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Yzyrsh8LtMog7NC0cam51eEO8oYSt8fpW7IRTv5BJHu6+jwtrNagJRRILNPw6wVTIzKLkb/Ane3iWxHXZBMe9w==","shasum":"3683069049c64a8ea09e14015346f52481a31dcb","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.21.2.tgz","fileCount":103,"unpackedSize":897037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfY1N7CRA9TVsSAnZWagAAtk0P/RKNZR3AqEGrf6O6B68A\nqF/6Aygt7bhQUclHfQhZKRgfZpfIbHyVpIiXK/b+JFstQGXYwEo9We6Cn/wa\n1y+NEpcI6MRij87jOVhOGufPhXGCjHE54e9luBvp0XMW6nOViDqXF7g5rpR+\n7Rhc1aHKuqMx7DO2AimyNHCvoGmWNWRV8dT4pyuMsGONMwR2Ezz9eA0IbtkS\nnU+6OyYXj7jAoS59EcWmghpNpti+ZTrV0r5TAvk43iywuVLSMud6KuqVEBhO\nZ2p9vaYX4NWBb246r44XxiZQNL5ZUVPTQ1Y/F2Ok/Dtpgh32OpyWKGRJsqlS\n4/P++8r1JWULYaD+wNUpiWfAKimNefgrqqJDddMpefDAAdPgfSyMd3rAJXwN\nJSDG0AaCmt9+T3ur+sVD1lCmJdlwz0aTYibctuUmPGGhhUIhacdL4ze0K9by\n7xkOFh41pQ6plMYJhSTpqFLGeDEF03MmTpSeSXxnLY11leZbzF/vDXG6p3AU\nAWeLipiqWgV4VBBXkt5hpTm97GTQ8d2OCEMX4T0tWDaay/FtCo1p+2oxUPua\nSTzMSfNxGbsgzjpEYQksxz3YPRbsLdacYzFXEsLlO2pY9XUm5vYAMj2fiM2O\nFzL48Idvh9n1XyNh7VHp7Um73T9T/YbFg9911SBjnMim6MGU5xve/8wwOl89\nTVN4\r\n=5b5a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6qLO0FasOtqWOW08vxDuzLktUbDdQ4AhBnzT92ycm2gIhAJMTeQUnXCbCkZ+oQ3l2AjGxaDWXczyzIvQojA2YfW8b"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.21.2_1600344954688_0.11389454692604106"},"_hasShrinkwrap":false},"2.22.0":{"name":"react-query","version":"2.22.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":false,"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"979527b2a922ece2c548f1a82de74052138368cb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.22.0","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-D0zOcxTw1drcZsggIEwRJIYFv6lRQoYjQCG2nWDxxb6/Xm3Rs43mUCR6L8Isjpx2ZO9gVB95ZGtT8DFAzMHwog==","shasum":"10d4eda9632fd6644293f4db0185f0f78bb81a36","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.22.0.tgz","fileCount":103,"unpackedSize":895387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfY3dUCRA9TVsSAnZWagAAT1EP/jcSZvQK7mbewlz6IrPW\nldyRvHsoY61bD8mWEhreQgq5q1XXVXShh6bvI4JdDfNXvgDSY59+MpoPmIX8\nGxSaIfrOmK7IYbMc15TxInL/TyDcVqKCL7Hqowyu/0sPL+jpmcAvJ/5XJa7Y\nSKyicxwZBXMyn9rPiyj+ip5QIR2V2pEHNWNxtqGXzgibUxKLA4wWgKmi/KPn\nXx+1y3xEBrk/DdGAgYpBUDXy6BGkA3E544CKhIIpjO2pdfcZvTjpEEqAZtn2\nd8WuLvK3Y5f49t2j2zgbvmJY3ROPV0bHXYSP9gIMEoq0Ybbmp2bVs3oyR5Po\npWm8Nisg4XLE69fHiuKcViFjo6BzBPAzxTRUTrWWntyYVW/VohRQLSz8zwlW\nUlT4ZHcUb9v3zzUvEVS0Di5G5nRHqKCXv8CkuanURofgIOrTKm5RsRiRf/JU\nsiXZhZc6/N5paaUbIltbdvZxy65Y6LkIcfWCecuGDuNknZMNtJW3mdkhiTzK\n9o9TG+tN/CVFet0QrrOSRMClDUMVRaTXoRMDCuem1QonLkU+0QlqPchBv2WA\n6SUZXGTPPXasHkTKmYB1LwEoqg2rcn3DF7DceCKSERGz1a2E9IkEhiJy12tM\nBW06+6iGVpU0p1BqE2fjlKvvWtqjE2PMsdGn5m0dKurLbNUG31rdubuuOVcf\nNUBB\r\n=TSXb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd6YXZAB8Jj+n3psRsIpvv7+SQO4IHlyOuCoxYAR/JhwIhANyf2S28WaSkMz+5vaRn7ihhinTekPnD1zuRpI2dIRLk"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.22.0_1600354131925_0.05711123830050657"},"_hasShrinkwrap":false},"2.22.1":{"name":"react-query","version":"2.22.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"cd17d4148ffdaaea8764ffa010bb54dc6930345e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.22.1","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-M5SI9wAR9RX8KQNMVClTta4GUO3la7sFL+oSKmSWhBPFZeT7f22asL/HKdsel/JDP1CUxn/83+ykOS9HRMs/9Q==","shasum":"25e6481f1a944d3d8a02b283e2f251107619c073","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.22.1.tgz","fileCount":103,"unpackedSize":895054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZL7eCRA9TVsSAnZWagAAUVkQAIa0zSfwV8WZibpQAurS\n+eRhKgGz5kZ4dxDjeZs1pTOhJd/nPgjlR5pe9e0Wr5p0K7U45kHp2bMbeYDX\np9i9F0kqwGyrFfLU59xcErQSAEknWxuGFJuD7qP9ZOXrnmyykq5DS2AP2ziW\nxCQxQrlXzazFjHbVeWkOIpLNNWapTu4Ua/qkGpOymzGxhNpUDV0C5wX9rcZw\nW6YiynhCSrhyKeCQSeBcseSWDBugVNLO4ftib9xqIAEuGpBzmoe+xv+O8s1S\n6kX0E59rMIAgbCAtTEJe6iZLnXBi9VmLfJ2pFHMz8f4HjAm+57+fNUtHk8XO\nu8t4GK/CY54WGCuzezQK79wSzIjSv4OBlgDaLqZFQMCqixsMpPkRpXy+BwMh\nLhqX052o9ypoFp+18/NWPHo1btefht/p9nyjw4LewHdpePqKVN0dakBfQf/S\n4s2a80txB+u8UJYiK2H9teIGo8j+xc5JS6zOBk+oXmboN9oBUAcAAuxOlWXD\nBbFzqf93741TUilCaRFRTrvkdOrOfk2XTH/Td6fVYO+fH70chqjPJyOKLXvq\n8Ym1Ptr1diyeOJe+YFGeanfnduCsIJbHEeO1Fq1Vw8ApDzKQ2PYRipNyt5UZ\n0yQ30KOMHb7F0NoFVgk8uH0Hx+M9z5+up8nzv6h2NAlM11L7uoFOkgwR/NOu\nyRX3\r\n=stze\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKabL7HAoar6WESJAj0zqhk4MRyDfrOW7hu14H+8MTDAiBDG0TFEWYe94St3lDo9Uc+jcxjx7Vp2KYgwR9SuX9OFQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.22.1_1600437981499_0.9672962154547959"},"_hasShrinkwrap":false},"2.22.2":{"name":"react-query","version":"2.22.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"8980223fba508eef133b1c1bab61391d39cdd463","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.22.2","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-A85x2y/C+Sv3DcN1mSHvX64xCGvkylPhM72galoKldIpk2EjdvW45vpPQUCx3Nk/1+BIyxjUJwCK2irJVtGFHQ==","shasum":"50ee78d30594b5b47ef780d040b266698f63c9e3","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.22.2.tgz","fileCount":103,"unpackedSize":895653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZMBPCRA9TVsSAnZWagAAJ1IP/RTU3WJKAS7WWfqQEL0q\nFXrFyzFcFGjfwHwiwxxaGZ1P0LrDotaqoCbgVgrUKyePPrO1JzNL8ApXsXM8\nGy+VL8KADbq91Yt0JaIMIygoPxhuYTdtOdX2X1osCr5ZPMrKqsFcoINusZAU\n02bsneLoQ6RHdCuClQ9C9o2OYwdFVKDNVFx9DIG3R5GY9+0TSrg+psTcXSdp\n7VUMpsCPiu62EtgzUlO9iEJBaFkViRq3Dxx3WRs8mNbhfC7WASchKif5ouPY\nzInTOcRxhSQtfc14BlQ61uMKhkzercKbA33cMMTlJEkoZtWsm7PbmJkvi0xI\npe82oru6cF9cAIGCMYl4TG86qeTm8OX7IwDQecDAT4EzEHb/gZtz9SQVwxNG\nPYzw17kHsMehCAWAANzvZg3sxw7lJcAbvrQUod0kj/7bcP99YWcjUXn0pGd5\nz3NVxQ4woPnn2aPPrUHq6I+MwBvAa+gnHpBrllgnmqbhSKOBWAOdfRCr3EDx\nCi3KAj3+uVgBd3fwkwTmYfLncA4VdUPk1lhfwaCccQaJ9WFP/Iv3xTIrkpfm\nhWVw7CTrIa0JGxbeYlmZHKSGoo805ebsQs+eswasATHCFthy388JC0uay+pT\nzycsBOsSFHyJhxVU0tdHpQbBpmFxGtRqI2QnhSfZBvhJcttH2szIV6/kkV5u\nWSrm\r\n=Ptvc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAaFHtMuxg3ku5rNZcxAAN/uGaEmg/YpweYyWXvrZXQQAiEAmBsq7LAd6WGqgdDkrjdQVO3g6JGtRO4CvQIAe0w6Rsk="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.22.2_1600438351087_0.5566032560139191"},"_hasShrinkwrap":false},"2.23.0":{"name":"react-query","version":"2.23.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"e200c99496b7ebea84da5a0df38242d80554a844","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.23.0","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-LHBhrr7ntstjpt85ssEaW3cGJx4BqQBFleTM3fXMO0MFzaMDQx0oxdUur+iQSOpLGPlrpToJbrjFNMQTpEExdA==","shasum":"9f9552a30380dfc1da2c165b5011465a78128ace","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.23.0.tgz","fileCount":103,"unpackedSize":911351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZQTGCRA9TVsSAnZWagAADy0QAJ3oCanwIi7lu1/cK4su\nMbPZ8GVcTJSZSZbPIcZZiw1/IqXe5lE++zcoW104qAqms5CITJXzZA7miLqc\nV7kATIvDdKQ8WliMhQOXSINxyEHHVpDYjvRaHffcGeBfKdSX5OcAO7dOQwSO\nrsGiMW4EnT99JAAyXqApDtsDofyeR1cPuPDDtWyw6jZPCRnqTf4fD0LxSP/u\nk2L8NqrsFb/iqvlxZ3fQF6oq3+mFo/xVwH/T7QDyZghJ0GWdcNn59d49VrBf\nTX9lscQBDDduBgjPpl7ksjtT9ska3HdZtbsvWNxzLkgQMsSWoNHeQQ7BJwCw\nzn69CSpEBD1ydaf83duRtfcLcwEo6RNpQT1IreWX8rxJkDN3x81k91iGkWZ2\nVbKau62XWBRMZr4rbScmG6Rq60JbXf63YlRlA2F+VR4Tw05NUqMRsp92z2Lq\nJrmxXeKbCOMpDCmfQsFlmdPL3XO1Qf5/pBto54fw+rg9BGZNB9Mv2C/UbA79\noyi/YpHIB5sGHVmi5YqBc97w7KEt7YekRUC+kh5YkgisfMHjE4sQjM5xLn0+\njgbUIWR/FhIqyqO9hkMrOSa5DQT6NLcg+9fBfCokPSRiiW6fIXdgK1UnaMEe\nIXQy+lso/GjL9L0cO5fpmtG6iXZ9Ilzjx1id7BBFAJbm1bgYhuW/8ZSXsWzp\nrEDC\r\n=ywdW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEPGBl/SQ26gTPLedbNkObS9DSeIxXNJIx4njtBlHBenAiAjBJUHnUqxPR1Uq3EWEwYoTS5Q1CDZeEE43fNGsLmriw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.23.0_1600455877720_0.7526715414990472"},"_hasShrinkwrap":false},"2.24.0-next.1":{"name":"react-query","version":"2.24.0-next.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"d827c45c5b54c07fe7cea7747cb970dda5a1bda0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.1","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-oe7LfVyZzmRFNCaU82zpSbjxhpn9iqcsFXgRtZ8iPmj+Pdm9/qFhyPphZNuMxrqeaE2V5fHlFoAQCJKmUde8lQ==","shasum":"067d4b20faddc50140a2d78e5c0e2fda84f725a7","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.1.tgz","fileCount":103,"unpackedSize":547465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcqFeCRA9TVsSAnZWagAAITUP/0sxpFi7Y2maGfFDUQq2\nObfV4DuVNLkPT0r4vr9DyD9h+0YvyooeNHYsd+3kJrJeta25X4GHkegVLu5w\n6lf5RzfXP4miUHuujuhcVYQ2NIiOZSfUH868eC+HM3UlXlxJC+l1dzKRM5oz\nx9ds+0TcMY9B1nDo3BA/mFMIXKaTnxOD1hoT3ZcHZgjUVHJ6CfytW6RraRGC\ngtvUrWOZyNBDsycXQZnocD+IikubTwZTffAb3v5yH/kMJtVCk2nPL/As0fIh\nmNU2kgg4csj5pHpgFxDdTCYCCGassrizWtLQiYVHyg2PCO3+GU0jDQ/bVtMp\nopxCeFwEjv5Tjx0Hlyg3kNVfov4qC1TfeKgz5R+ZofKI778jxCT1tFjfboPu\nFi68nIYWgh87K6pcdcUrUIap+o0r0Cjn93do8XANFySuZrgPXoFi9WA0qtem\nTSytdLa1IMeq1Bg881DH8FLLJo/WsNhFYu6QT0YdWS/SHoI8hF19GK3ja9PJ\nm4I5NfENUEcMwOlxBZnSjj8hqMR6jhHmyfpx4QELDibFyJUSxPrTe3EZLirR\nmnPZG1OI4cQ9J3Pwycfh5SXcOvbaSjlLZlY5UJY5SsJMlM24pErCIOdzoGDr\n8l5LOSV3tDN5FQiuMLua/Bfu10p41XDH25zx4pqfpHJ5XCJ6rdzc7loAGVcM\nTwlb\r\n=QO4t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEhCdaT/mrpxJpyjaDkTVjZ4+k9coeCVkKs93CaKDxPAIhAP7G1Y560W7qITodDjj3J5tCp1TKufRvUz4GikQJUBjy"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.1_1601347933428_0.5183792852773661"},"_hasShrinkwrap":false},"2.24.0-next.2":{"name":"react-query","version":"2.24.0-next.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"f9aac2a410a75eebf1d1af0cbfc528e6899ed583","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.2","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-5388ovcYWLUHqA3ySTBrIKD00keqvvqyeHiR9l2iyymnQtGm5w7J1CkWjH61+1QKUVDlqjFe7Q0BQNw/3inCEg==","shasum":"58b13ec5077c132821164846e1fd3742e1e94eb7","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.2.tgz","fileCount":103,"unpackedSize":547596,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc3cfCRA9TVsSAnZWagAAa30QAIvpFJRUvwJAGNHH1beC\nhSI315Wj3uWTOx8xjBkNAui0bHXrX2pZhvdy6o7a61E2Yifq45DdPaelQkiS\n3r1MUcgPrc6G1RtmAzniz7Yr0e7dvFYGACNinToH+LslDSBfiOBDp7O0enEr\noemeCd6LrxDqHdjegBiC3X88F4x9x5vsZAggEQu3nH/2RmKnd0h4H+Q6JhGf\nr0HIW38ZOj1imGF/vD4GnUdej+cXyBaayguP9VokovKOv7f73n3tyP9Xw0bT\nTfM6vemu6Z22avjOkcN0TQC+vlbp1rhvA8GBPrWAni5dVJJdHqVtK16mLUpb\n46YPoswAKfAsN5tDZds2rxb+zGevebuQzGvx4GAannNHETSJ366yoWFcUvU+\ncpmpcPVOACipP7XMRVMsWjVaGCOTMSg0WMxZ/hp5IAWCoCJySLLdj16Wxm9g\nw5txCRJmpYsEmn9gKOdyKflcBjVkqQgU1Tnns1LPD7qeZZiV5GWJYrbb/x2V\nkZld5VC1fQL17+GDrpdIZBixFywGDYxqXJKFrCeE42rnoJcIjDJb/GlH7z+I\nIyEKMRwzEHtyLmjmlkxyJbzZGMeO9z6VoR/SszKw5f99S4v8uom62Kybx1gm\n2u28UPoWoe4GeDKWWOcWlrjBFeZNdT7MAdY1sBYcCMI2b5uS4bQz1shIkvn3\nCeTg\r\n=oWHB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtZL1cL82FpOFS2FnwupNsBAE4nhBXIPSK7Ma7NP+RYwIgFZwlpQfk9UnZNOhC5YHovv+MSLCnANCrU81CXIPwVjw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.2_1601402654590_0.6444745600684048"},"_hasShrinkwrap":false},"2.24.0-next.3":{"name":"react-query","version":"2.24.0-next.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"f9dc85a79f9228443a16f5667f81b0fbbc057602","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.3","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-vPOtZlhwc6/CpOrSMg3s5Nu/e/h/iHRPjDrjoIF8Nyr8i05TKnWcwdDOAUVRrGXPgeywcRGPBp3J/Hi2tEniCQ==","shasum":"e27e72131c500064ca9804817fd06cffb5807687","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.3.tgz","fileCount":103,"unpackedSize":549132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc34gCRA9TVsSAnZWagAAJQ0P/27UHJop6wcAPt7UWqvK\ncYFzf2KuZ8yXKXAb0j2D2uCW5vIlFmoQ3YQr6PIqw1kB79hmHk20eucMqMXI\ndzhNWQV6Zi97Fja7YgihuUrzpgo0pjGTMwSVFEcNpPx4SFtdcTDxnUPcKXCh\nRgfVk/Sf4YJ8vNwUc3PAbRK67i/VkP/pFNZ3J+w8/pOlQwZT12qKG2n7yDxv\nKaOmEtNXFq/fScqtGctkh1hwi8C+plCtTxuZzA2g0/H7ad2D/h02vzZTbO1w\nn8z/+5qg8PXNuMT2s121ggCzSeTQJqDP5/huDHjnfzdRUXiKQpVUI/GY3t1t\ntP4vRlLialPH3nQUknwe7L25fHrelzSMz6g/1Qdo3w5askfXDFwNXgPjW1+p\nnqWkWfo95hIY5X15RRuLsQYBpomsK3NmqitDxo4bdLAOleQT4jBcUGpt50+w\nfSKx808RUNPV+pCwvVG8Nc+YLYfLzgq3ZWEt+jon27LFHZZvVaU9hOn7q5oK\nMhLoOmc+fpu3ftGZh1xNRMQ1nlPNQBon5flmKdFjOyL6X3CFdXOuDduEwP1J\n2nu2KgUGEc9wxeszmY9ghUWX9PMGVqvwlot4Ky0nmNHJKIqw1eBbC1saZP6a\nUARQl1J1923v5XdFDnQIsUjvzB8pzJ30D33xQBPVl5MCHqmlFhi7pCbyNxBI\nMsXK\r\n=uFqs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3j4eJFLnMae78z/PdVG68MHFbKKUI8vnvoFsO4JrN7AiEAlQ97zNqztjgFp+0Z8rPz2WRR+x5XtEXU6hLA6kkRpwQ="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.3_1601404447352_0.38418805490858365"},"_hasShrinkwrap":false},"2.23.1":{"name":"react-query","version":"2.23.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rm -rf ./lib && BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rm -rf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rm -rf ./dist && NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rm -rf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"6f2ae92ee1b1478078cca9ab59af04b5427d4090","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.23.1","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-qIma0Kvr//LWgWFah7RcntvD4FurXXdQaQeIfqhCWKdhihhe3Xs5BHsljAP68jo719/+xhWxL3I96SvrU4gGHA==","shasum":"7d676f56d3c6e96b4de4d0b178baf6bb6a0ec272","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.23.1.tgz","fileCount":103,"unpackedSize":912259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeLkkCRA9TVsSAnZWagAAkjkQAJ4awLups+/sxumuemzp\n9Bik7p4d+q//PxqXhfOMAkeJBEkWZQmObO7m101tKNc3Z/VANC69k1dRiFFs\nZMbOVUd4/YrdVvQEJSGd38/jQBgoc72lwfIq9H0IjthSWRZ7WtkcqGdlBEIM\nheJ2o51WHThKjXP1IPD36xxhrW4i0+Zanuaa5wvSHmAswU1VSa1rvr82DZv2\nih+iqn3zb/eELXzo0/1q9IfVkuOYDTI9yXrzgX2xLEE3+ptIIONTVgQSowm1\nZQkMgn09+1NfMowWbsV9gzGhMHbzVQ7Eyl2M28YmxBadvzlS3CeUCB+QBX5N\nspYKDPzCwEirip7V1jg7Qv36ZpSgzeMkmgIZDj6Xpdq1YUU33ka3bCsZpb5z\nhLucuxa0DEJHV2Ht64yNu/ispp5j7sHCxMISqur6w+XgY7DO01Tyh6qEVFKj\nNvAVVIUbc+RR1/92XmG5iUVnS+NQgZQ5rsi/n1uvILLh+eVe1NjksJ+QQTEB\nB9tH/Gi0TSepM3l+L6j4GjoKocTxgO9AxloKmEFlPMYgzrJSzyDoI7R8ZmLZ\nI5DlcV7/r/FnwUe2TKk41JuYDxCnY92+zWIU2dcf6WAR1mLUGe7laGN820dc\nXL/TDqqkeowvjBwuD+rpHgCsJm2PcuNof983VdMhLFHNH6gkkhMeVU0SQNvB\nIJck\r\n=ZgTE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDRGmBqdrKPbbT5x5g2XEehoaOhz/FsqMMW3RBpyqqVRAiB9RFEhFs/2vcS9Otx8LaisVpgcet5UpXnr+bWkLPSkQA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.23.1_1601747235383_0.054820984047553756"},"_hasShrinkwrap":false},"2.24.0-next.4":{"name":"react-query","version":"2.24.0-next.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"9c47a0d1a485a03a34d9af0c25a836a79b40cb5e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.4","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-rlM9BZXDg5bt9MfEpmSeUaZoAKL8UpOH8qFUKKjh7nzB8CZbHXsB7aazI8Efp1LYbqGw2JkDBglByVsnV04Tkw==","shasum":"1414f205e76bba7e94bd7a44366787a5791487b1","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.4.tgz","fileCount":103,"unpackedSize":544911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeYVkCRA9TVsSAnZWagAAwX8P/jdBdPTLM4HLav4XAs59\nLTvf13LgFkQf1TIWX+JGlFEy6rrX+9xi6v2wFG9Bma2/toJPz/s8mXxt89z5\nR/99lmmbEA5z/oPJl2pRV650CW/37LvH2FVbGV/aiOs/ZvFvBQh2oW6GrdcD\nyHikig2taA5H9Y3G8x0Us0NnVqlKzUT4Ph608RMQqUZJvQXAlKAp4/B66MsH\nKyFYu8j7AKWpp47Y3SHd9CvBuTsM2QYfrpAvItUudSB00z9cYDKm1fvJy/eA\nD8F/aEaMusPJXCaVxupdfQ8Ds2usnXVZH9J2jISzWP3DqdwHn0KCFw7sv0p1\nkPESQ37g46DoeaFq4yE0dBaAy53Vx33QbHquN1svnU8VUTUagrgevpUvEl4T\nF1OQrDRVMw0lHbkY5DmPJjB8A5hWdO3viI6IoHM5Xb519lImvpPckG6TC0Zd\n6RL6Qlg4OhsuF41k6naheTnIWBoLnXz4U9s2R4YoqFpXBWDx9Hm/qwAGXmI9\ndIDu/Ja73zgqxnxnEMJVdDNHIAa0c3LQJ2/ui7cHoFYu+2Bem1NVjkAadTIb\nME8TNdNFf5W1Rnepd6w+eCg+IaYa9jHruFtqPXJnVDL4O/fb3k5Kch20b3d/\nkiGfybKPVF0B0egtlYxCM3Tt614H5rWKk8+dlf1/Zjp8wveBPfzeHusrKlaS\nbhgS\r\n=PKSM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAiT6qlcTou8vhETNZ/3zsJVOkF+1H5t0HdmFypg36uPAiAIziMKVhUP5rCW9RuruHYQslfo6cjJjSlG4ZEmyY6zJQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.4_1601799524211_0.9675067709320178"},"_hasShrinkwrap":false},"2.24.0-next.5":{"name":"react-query","version":"2.24.0-next.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"8da45d1a2cbb4d9e47073583f13fef2c7e333b66","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.5","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ddITzbA2gIzcWIkiZigwbl2y4+epoWOKi6bYCgJRZOvJIkA7TAZ7aSt1u3Bs2hlqpWaGfop4vjEeVKOEJWC0Kw==","shasum":"e910a7a0e6e418087288fa1298ccf958ed67478f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.5.tgz","fileCount":103,"unpackedSize":545176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfehJ1CRA9TVsSAnZWagAAeI8P/RCte/1rL0/VBBLKawOu\nC6kXzmQEzCohHGsz6VE+qc0XTe8rDPNsmoAL7cpWJulESk1alJslIXGIWaQC\noW/VP/eIACueznAMPpD7ZCAi/HBNKhORjK+1L/A14fOHcGaVn/OWgxMLGPLj\nz/Z7/82hGR99kclCKBUFH7l+t93oJtH2YFNZ45fc5XCH7uNhO53i6UFrQ61v\nt4NPBWd3RamQZg82PpwRGBFNh3Te/JZeLN1Ym0FUYcURtZuWYmZVre/ZlNoc\nR5wuHdCWjZTmD+64ZjZ/TjWgsOJY09h+10RfmG0T8wNMZUExhYyFTo04SZaP\n48exmi02kM5vxMbOc1uz24rX4xW2uTx7u8CALE6EuCFJsg5kYR9c9ZQ9ym8Y\nJQalgLNRQ99sBub8HWYExMSR8X9sjsJmkUKLfXRJkgigloAsQLhdtcBQAXPS\nP1nBUbjv8o8RKWoAHDWxKC3A5gEXjNpK6OiXZwvEfuCl3i4lGg4NPRo4Z2Hx\n4TonNUSQCcW4eo4RokdJfd/xMgd+TmDn2R9WhnFqzwA3hlC9MSTYOGzNc/KJ\n8ZMKKvJImmMEgbd5JDKDvGgTLXoJaxQHK5JyrR+uYFub1RpX1busops+TVIU\nkPEs3ISZvPe3AerIYDIimVfbpsd0gw5fggqT836bpe9IP5YUjRE/DBZ/8sUL\nhzGu\r\n=xONB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu7mRjAUiuOpKXZ8+qOF/j/bPqgZFoVMjNqcJQf7lLggIhAOIJL6Lzwqbr5I/fqgp5ytOsmH5MBLBpxhIJF+GfyPiH"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.5_1601835637186_0.8827543899428667"},"_hasShrinkwrap":false},"2.24.0-next.6":{"name":"react-query","version":"2.24.0-next.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"b6b1dc6db60a48352a22e0bcea2b9ef1eb6f4223","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.6","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-6Su20+BWlVgAacWbu0tpu50DkBEyaHoRFU3kdlBrhces6lpNPG33l0fyYbAZ6JE1CYFr6vIj3I9c3NJCBo1erA==","shasum":"a2e22596a72498dc25af7d87835ae9724084148d","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.6.tgz","fileCount":103,"unpackedSize":564886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe0c5CRA9TVsSAnZWagAAQKMQAJY75ysJkDrmMiW3Avue\na3Hts4xrDTTkpwkiOigsN+hhDOKBQ/7aTIIS9YHsW6uat5nl3dT2GDxrEqGu\nN4Ho9asW6v5UlLIPgKwautNLodHorNEkqzS3YjbW62lcofBzW3aU2Zp1m0+4\nss0zFVpWtAq/WWk3dWtDRUaagupO6VCG3hKy8E68AoX0IOS27qX8v13y9pFF\nbtMkEi/jM+eMGPZAX6aTJs75EkWhuytaCTJ03KjQNEY/NpU7GEVcE7w0zSDe\nyrkrek+a8hJ2rDFJFffY+BiFqMhSioWFDmM/lo19gmF9fcIPkTOc8AxisQgo\ncAf5FVgprXQCP+GY7aYUKyg7dy0UvXlD9dmCEMK0qAHCG75FRff7bglpyZkl\nDcgAJNDux+tjmUZqHoE6tjMMaB/v8KCnF6fbBC5moVdECWNR4ULQlfKInMXC\nPh5KJjkamYh+KXfdNui24H89B9Es58IYbo6iAAjgveu7SHFNLbYnPvWCEqLK\nco0RPgWHSF4UwFYUlsnNNKU+i26snTFkISLW14E3u+a3q4b1RyVNyzRvLSWD\n8EqP7jgNAf22X35gNQDsJOFGQ+/SYPV/3u73g4utpvuhLB2QwajDZg9bh3GT\nnSqd61PYcIJP4Dh6aoLjRsZiF1gvvkBXdE+NUb0RHxbWC2Uzdjl8SeT4/QN3\nxGwW\r\n=KYom\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT2LpSYUBdRoVH88ZfJ1v9eF4D1yafuBeD6MtE8+vmDQIhAJZUB91v9tV25tCi2BhQBGFLzV2BoqTk9edfzjCsF3pL"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.6_1601914681040_0.05307735128175195"},"_hasShrinkwrap":false},"2.24.0-next.7":{"name":"react-query","version":"2.24.0-next.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"765740df29d43197d31423dc91c78c77b1e4510a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.7","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-v4j+BjaJ9rao/U/oBmza+ysr/BF8IPgYRXd8sW8rOGaD2r0e5OncoXxZiX+VaZXokZoFOrHJoOZw2q6ZOZd1dg==","shasum":"db91b2e65e5654681f5be3e262643c6d1dc1a52f","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.7.tgz","fileCount":103,"unpackedSize":566479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe10eCRA9TVsSAnZWagAAX7sP/17K/4JptyErbierPZLt\nmRuhMpBEIx7HBUW9p2Pv8IMdLx4OT3VyX1688qvHwBOQ865e6Y9W3n1j1DXB\nUp7lpBKGGpW/J9Hg9gZetwbjV3vHj38qiBLuLMynwDMCWyhOhteaiAJdeR01\nqVrrL/KFAX0XerG0SXqdqddEmXXlkCGsCwAaMbvAow2qsH6DG2zQ2/YJiPPn\nS/nv1uOFjw8WoJAtvB+1JSyEQdLlXggwmNc/B4curcG2gAXxU3AxJewfnr2y\nYbRmmD1lMdgPTTKfl/ThafeHbRjv9Bz4LMxk2czrQfBzH4fw3nD4qPaktdh1\nj9KU/bPmhpihLboK+wqMyDOrWPqw/RdSIT95wcrr2p4Gt/fGYT4q530d7QxM\nHdPiEZ1LCVxWdow93jlYgCpU33ydqQpcbEDgk2/USHIGNdpfONGyEwWJFwES\nMXpmlsuQud+4mMfqLL4c37LkG0E3bBsMSR7w9qpKJU8N+krMsl4g0Cfejxl4\n09tZ0vwoJCNW1vt3ic/cyAoJi6apmkjbgdk3xcjfd0qEU2BxmSfKE33h1Alf\nHiE86XryegWJKnE04n7s7Hg/mqEHthdMTBs6Py7m6kaYLmhxF0t/g3k15qRk\nTPHgi8MHpPqAuWbZ8w3AeOnMSAy0QecvKs0FHycegnIi0bluXF907u+e6ugB\nwNJy\r\n=PnuV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBgp0yPC7LHcZlMB2Xb5AJ5z+mwt0uk2Y/MFFefGvLB+AiEAtqdSVqGKdXXmpdetPbcH+9j7m9Rdqy0Hn9hbdYJikIA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.7_1601920286165_0.2403339705310421"},"_hasShrinkwrap":false},"2.24.0-next.8":{"name":"react-query","version":"2.24.0-next.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"next","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"0f7fdd7e95af598e1f89ff2634cf60aadd8fd6da","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0-next.8","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-40iXXJ82ucHaDm5jJt/6LKHmEjOt/ur3yhRCitcQSVA9syv5Z3GtQlQXDnVD4aRkQqDcMpjbGo184o0L1CtTzQ==","shasum":"9f08b00003ab377562df20b4dc9e9b1871652099","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0-next.8.tgz","fileCount":103,"unpackedSize":566838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe2oqCRA9TVsSAnZWagAAwXQQAIzXdrubAELvYj9pY4f+\nTY+O+MMJHlhX/g2P+tdQ4G8OyiofqnZa60F8orLgVXXAS5s6LbQRClOnspMP\nJGKJo58GWeEZDEX2uBumDUaIrgd+N9BvImVNWoJCl/mhRCZI7s9vgkvc1rd+\nHnQYczVXV+Yo3ObsfPV9n4h4veHEu3YfDR2SMgP+rkeTCPuqAJ7aUEgwtf9S\nJfjqm5brHGf6aTOwaeRssX6Gf1VXTZJIpUF2/u2ivQLD7EHCmknRKt04qG8Q\n6QYkCL+k1LDQrMH7ryo6mP18d3mBW7XZd0HF9G20rGRWj+AhAMH83aFdceNQ\nl1MNcFkVEynkj9hinkk6aS4hMm20AzebYGo1NktrCMBjky15LPbcJapmPblc\n1umGaQUBYON5idW1xfqKDsk+pvpgc6Um1n6gIssHQ/uQNbX2dKL1P+GErRbP\nIwCjhixroEGvT9NmYOJT54BOetFt6SYY0MznF9LhNTAH7xBaEbKcuFbfW0+M\nU2Tlw8ojC64JIUF9iJ5CwRy8lIWSWJgfSCag8ZZ2tRwCLb2beWxvDDwI6UEW\naaZhQVe/JQM4ZmNIZ4slSohzTWqN6gkqxlsowu79XdqZzTep/mK2O3tqgukM\n8ND3nH+zwSxV8Eb1R4STeue+cNSd25VLAAYeszKVksXqA6Eg4qWTyqJkxbVP\nkxvI\r\n=27p6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG/Frtkv/+jVR9Vf3tJnS2fpjTipsdlSz4IUCV/yROkJAiEA6glCiCJs943gvmAtTHxLSFJnXFF2/k54UwFHh8BmvDM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0-next.8_1601923626273_0.15071957121688695"},"_hasShrinkwrap":false},"2.24.0":{"name":"react-query","version":"2.24.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"af4deee8c2cba8be54e8882eca581ed73f9f2a81","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.0","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-83dVesvhfZ/mqN1tyXNf+gUUkC+hx4hTuuWkaaNNlnpuome/8qSyokVv1ZuyrjjStPaqDGdQpSaN67PiGZD1Ww==","shasum":"baead9ac69a14e859aed0c31d0504032c173e243","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.0.tgz","fileCount":103,"unpackedSize":566775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe4sNCRA9TVsSAnZWagAAJy8P/jCDmRe899GQZ7dQMFc4\nJG2oHhYdtFBxfH1zYFIhuX71cmjazW2cFmBHEica1tFTMUeCVClsnOoMvvxM\ncROGZnkWe/eJ9zup5ec2VRRsjWdQ4tduNa2944UhE7yHafny6cCmAJGDfTYx\nloHlJOeGZwfOsNg2RvdCSkiD3Y/eSGMVrgngwlHhz5KuuY5ksHpb2JEoqhx5\ny4gqKyH+5vVUDEcprIwlJXSO1tJun1gSOUkOJ8d+kknHMqucZPcTgxmjwc56\nUOVVCB6cd7iG68cebY1Zw+kXvtuDWc9oecztgl1qDQYYC8MlBJZAuvYyAUSA\nZsgfTOAfkUYz9vbd+JLOQBROK/kUfMxbMPVJFQYwz8MEBvW3eJpVdCQst2ti\nnTrKyPHztqqSb8htZSWkKTAfhCjm8lSZT4s3oKYI2gP5o7IFRKQ7ulLZwSgR\nzxQH8L2ernNLSRITFXiMTEixIPL6m/4IBaOJ0qrITu7c7Npbr5U/lNGBNcao\ny3+5qYuS0nSyXCfJ461hxrb5PVnpIdzi4nlPXs4awiXb2skEm8Aeh3MJUwKr\naseBO9+verBrPM42eosxnCD/Jgcf+NoLweHHzZb/lP5vD/fNWdJ89diwP4nH\nQtSQCku7DKpzalihmQV/mbiyXm9AlixwJjvur4AtYfBNTIlVHkzDAlyDNP7H\ngZS0\r\n=HILT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEmDTvWRDLS4oRihlv2okSgFYtCAtjmKSXxGUnHgENBQAiEA2gbYNQi724nQlpgF3MbrU4dpg5P0flcgjy0J9G8hvI0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.0_1601932044436_0.5718036822970949"},"_hasShrinkwrap":false},"2.24.1":{"name":"react-query","version":"2.24.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"a057829cd2bc7dbc919a62f7efc369abba5d3faa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.1","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-LplVnkwKEqiv9HnIezyQ+y9H8BSgumxu7aLBgFKiMRKoqnPgnhY/xb1DJVXtxSuT1PrH/E74mQMNaT6WwOOnUw==","shasum":"419b7f6b830b3ad01dbcef0b04b6dd0549d75b44","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.1.tgz","fileCount":107,"unpackedSize":566107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffIy2CRA9TVsSAnZWagAA1q0QAJzWMJLB64N/LXOAk/Dq\ntq4NCU+mUJqdzIa31Z4zH08ymbQIZoa+rQi2nD9VIHSeR8tKc8NJl/suoYaT\nMHj+O1kxprIeDMqXDriY+W7Gy0C/62pWicBz8NFxh8YrYo1xVoOz81L23aJ+\nRgpcD8L5TO0cC7zTOZR1yiZ9TXbo4uqQFiMB0yfWKfazJMwfwVY8kndtdfa7\n874aXXjqG5RPIkQaaLx1gChophErlkVWZbB0VwyCd2SRQ6OnYLkjsAkz/9pB\njh4xI9xzqBQb5Qhev0qj2taR3Da2ZhlXv2J7og2W1AL35HT3JvN4kQK0OnI9\nW5ccpC2U8joHbljcqATKJ77Mat577fGeLe2Tm/JvmKzwDra6A+VgR5LRIvbN\nqPrg7LQIJSsCu4Ln0ZkbtcIyaAcmhoSr9o4ANe5pDgjGNpUuL+7ysK9iHgzU\nZ/ZHHANZ8cfCnBqy9X+v59WiwuHrk9slHB8HXZyU8kthkxzyT+1iEiFJuKQr\ne6GSajJRpsyJw3Hbv9FCf6+EwPYxsQSjCMAsyHVqvScawhGBNqe+AXsSXz0T\nwOwThIgwvQHyDzcaB4o+GMAdUmzVhCWISdfpBc3vyLinIoLar4ulTQeke7je\nfPmN4Z57dIUcz4S4wwzLxzobVZ8WLdjLqqZ9GGLSQSTHho0NOfXWYQ8YVqlN\nejEV\r\n=3n0K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUH/9IzuTVCdFbtx+doWwEmy7q96G8pWuE3V6THWPXfwIgYuH7BZQddAEJ5knCIrGrS7khmDdGlI4LWNss+wmyfTU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.1_1601998005353_0.9747949741101589"},"_hasShrinkwrap":false},"2.24.2":{"name":"react-query","version":"2.24.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"1de4ca9d4c3e851b0ab619d8571fd1db94ad5dbd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.24.2","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-mse0SzY1NycvHxb295clbWdIio6mYwonbnSHMO52EpkzzJUFlEeSDR551zTenI0QgFfvAb6jN53WCv77C3tgEA==","shasum":"356542a287483b3a6805c452689f64f75be25b3d","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.24.2.tgz","fileCount":107,"unpackedSize":563998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffLNECRA9TVsSAnZWagAAgykP/1LW/ddnSbh4hT/pgS0j\nG9JcLki0X7WRbxV44F6Y4VBrM3kgFyOMK6dJIRWrMQRTC1jrBa/s7jyPX/Ao\nFGUybX5VYJCSWFOeau7SO0FjJRDybBhQUWk8zU+lMo/2WPg+B1wALAwm/wZN\nWZu+Bpx5eVlLTtpq1fXDHMQ8rjiYx5ucaxlTp5v0VnrJgEqfK1dBCfJR8vHJ\nEQnjNdPL+QateiYzdvqBqMUnnwP1gdDzw9JV/uFHsWHXFp+8h58qQsdkDNgr\nH1+7UjuETZZALbiek8oMYDX7fW5iPsqhtCgfIPtg3RiAjI0OJDgkCuRovME/\ngp5/IjxA8w2J8ZWLZk8C1PNv2ZYJnEkP30svdoFi0T8of7kJSeG07LixBhvC\nnEzFJaf+zyRvCRWegyDATo702nj7Adjpc/84+egcTPl6QdcU0ifaFxelx9/S\nPvy6t9gVcULC9eZ8jNK8abZgIyvhRXOg8Y64WZekKxGCUGHP/8EZMOGsJg27\nJ0DsJpkD48E8b6HuwPJhW788uQjPIExh9oiafMf7n1hGbCJPkMmKmuQGB0wu\nQE/5/BxjAgfv/m0KHSyVRUhRddZ+B7PBrcDjVf0hPIcJwZObg2j4/GBxDRmA\nhwwGprCPcicYWeu2+q9LeIK8gcZ0ORCdKGhelfFks0fKrQo8fq2Ca3Avkqsn\n+lk2\r\n=jIXJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUJrb6h3r+YKoB40iKs6dU1ZpUXxM739JQdLABOgW75wIgczxzRg+L7iBcw3+a3uXVWFLmv1k/i/BXrbO0iTPYT28="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.24.2_1602007876358_0.683073506200077"},"_hasShrinkwrap":false},"2.25.0":{"name":"react-query","version":"2.25.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force -->\n","readmeFilename":"README.md","gitHead":"07d4796acd8efc4bea2aef20497a59a3f3601b58","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.25.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TExNELHpSE7xCQcDTc9La3e7oyMVqqnmMK9TmP+SA6tv3MCH6vFb3rBAtMHcKsjFIUKodnIzswSpcVVffjZaLQ==","shasum":"8a5521e1528a5c0a949226e03ad80bcc0dcd095e","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.25.0.tgz","fileCount":107,"unpackedSize":565199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffaNnCRA9TVsSAnZWagAAbpUQAI9iuq9x/9PA5tg4XQlr\nHnZZV2vXE8gyB2KvllsqjaTDo6inOw8yIJGJwgWsalvFBXMiUiir+FH6QmBU\nkz1uVCT07UjVBQx2J/p8tv6+SZjiuA9xlceXjK0iTrQ8n9Q2bgzsdfeO5bXN\nwpyDImwWfUN6/Uvq6rYRrPorRvGQ+U5bLICBIAHhXafx9AwnyL+ypqKy5P00\ndnYqK/lX8vjw9vTwDAe3CIqxCcLgThhbKbpqdCe/M/Jou7PHPyeaWM88WmTL\nCrLTnCZYIHnwkE+iOqQtE6Pp8JI1MiNcg6A0KlWu7V6ga91EJ0sq7WoNsjDQ\nR3XkRgI1teLqYmb/ZoHIafT3RrkVbAgTEnJ2aMoegIPVTvqNO8nobO4aZmMS\nr5wPTma3zfAra+RRdYViZjsv5TzR8xrswDXIeIG3EX/Yy/TDL+Vviyfl1Ica\nHSO3W7Gm8xrq/Bh3mx8TtDVNZRYdWc843jV/074j9Wae75LRSlw50acXz3Qv\niWFMFhCE+ylqUsyhNiTR143LMKGpZ3MPZ0KwYOHrHgP2hBHDOhV3mUNA/oOi\nFV3T80JJ7bsS3SLhT27rfTeHIZm8hS/0wTMOi1uoeR7e3ZYqsqU6J6ZxPazZ\nDRiy7+fc6Q+wYkZqhQtRjmv8ttcVneiU2vMapSeEOAGrMmyxC5kUEH55lmY1\nfqrL\r\n=6ZN0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqxZCqIwvE9T4sGPzpRIY5J9h6/jpLGcQyr6eHMpepKAIhAIuuj+7vishOcXA/ci7XGBkRwFBkddraiplgWCEjSIOO"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.25.0_1602069350994_0.07279134446894853"},"_hasShrinkwrap":false},"3.1.0":{"name":"react-query","version":"3.1.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"2b4ed2202e982c54ca5e8eb7b01de62fc877d5cd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.1.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-faYySpVfu1snH23yDooSeco9ZjJcGoLqPdVE3zn/ZjzUcRYbfJUlfylcg7ZU7TavGnPzXFHR2BkBa/aibxRI8w==","shasum":"ad6674aea2e435dee20ad50ba8fd58cfa7ff7a92","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.1.0.tgz","fileCount":107,"unpackedSize":561883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgDeWCRA9TVsSAnZWagAAJeQQAIMd6I2Iu8OSjfBlaiIV\nsLUmZc+FsZoCMzvvBPwph3gNhdlPCUqccF58wiiQNlhNKnnikvbh958WYWDB\nJvkOoBbGp838j6t7ND5gWGbhyJ8zn8Ar0Nxulx/UzrxA2u1WCG+zsUtO0ywY\nrXOy7F7bGJ4VVb9tvH7X1p/J0lTNp7lOoe9lpG/eqjJkKzT9oZMYUxn6hmqY\nTI/4ZPRTBg0QWhCd8Z6XRY6xO4VfrHvsqugadgJsv6deNIZuQuljBlpzXkYw\nHPYHOf8Dcb2wanYxToOhwy8zbKH1avFXAxlspDarse0BRyS57iQcb+ljutIg\n8bS6iS76Q3IqRiZWX/m53TqjNbBx8W1qJaWtPy4KfnkiZX2yV9orfjycHFgm\nkHzD+I9OS0RU92hZFjDUrKwiQgbvmFwwsjSnM+gQb1CJzFd+AUs/1VTqOeMW\nmLf14/Jx5Mcp8v7rk0MK91Kpq6Gq9sDTrEu/FHTX1yDzzWo05ES3Gu1S9j7C\nji3jqYEfuUcoNKuec1g6XcSQoi1djNjGWu69DKKCy1OHj379SSbxthyzBCVG\nZDfP3VPGFUvDJFqycX1baHyu0ViVNqp0/hKLBwhpnqTx7nNF2d3lhXDv3ibY\nik57/asMesjDc/ZW6BCMU+B8fnBSkavGMQX+SpIPdjPV56dYOyifK24sFc3U\nvdnN\r\n=mGZZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmGrGmoXd/WI7DvZ6pGkjHcVfnu2iB9bDQ+5sUFDkG7AIhAN9oSl4wlQWY130P+biIwTTnF25J0OANjNt0IBUYGY20"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.1.0_1602238357931_0.22517314680512257"},"_hasShrinkwrap":false,"deprecated":"Mispublish"},"3.1.1":{"name":"react-query","version":"3.1.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 1 -->\n","readmeFilename":"README.md","gitHead":"ffff53f92ced8a52173ec207177444f1cfaef627","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.1.1","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9BxfcIj8qYKcyhe/x40y4SQPTgtMEdWKDHMQDi2ZsBEV9vOuLIJekiyxPE5kxuWmFmhHSH9zs3iuuhyPQpKcvA==","shasum":"343fcefc2a190332f6bfffd340fbee91b6037e2f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.1.1.tgz","fileCount":107,"unpackedSize":559764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgIsaCRA9TVsSAnZWagAAJlgP+wSPmYIaY6uY6ZaoP0gA\nquLIjJRxh60+vEbPGhgSSIXRyuEwoSORRFVNyr9waV2mxyQwG5voRiur6nml\nfvlESau11Z7077KVRs6zsImPq++bRIGpf5oW+bEK0iTu92RgwjMk3/An+Ukq\nloyN/B9R8hk8Vg216d2Q3NLXOgdl1IQ2xvlYF7VNCd9RBBTBkvBPbd5YmyaV\nyhDKrW4nxhIYv7wPG5aouXahUpWZUl4/Wnvy1PH5dIB0LD3fsjBlUkwGBsak\nGswyyFDpy+zRF0q2FyRPuIMEj/Ijt9BO1lV3ddbvKsKeWmDimuHbwRVWyKkZ\n9oMwd0+mxfYrHsKfp16Vw43+9Kqv9C6ycIqwc/WEPb0Ap0sfukiKRSG/hFMZ\n5sDNyQPWMVOdhD8jlHyIwnBXSN6+teeL2skrcLnBf+spFx31LkAT2KydI624\nAUwwRZ9jcXr880+5/faXRkF3kVjD2sItjfbkaJUg+uMANT33n/AwOghWhQXd\nBNflxKer2DTxLz5o418c9IcLKbM0BUdJjsnG/UCOowevWto876tbCA9vSU/k\neZEnhsH4OOd/3Sc/6cbntUahrjOqjMuW8557EnJW25sxCWhqn+dAfv9ikyWh\nvKm4+k1MPaAGRxOgVnlS9qOwy+FZRSTBvGmUma6eFluhWWpTR/3DVLthGAAa\nFu/q\r\n=m9wb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfZjxNHRqJ66jZq8+sSvsVcuE5atdayie4y0q+uAGkzAIhANHaQ9r1jojzg8O3Q7J/X6xkIoXFTmDjQg3Xo4ky9jue"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.1.1_1602259737565_0.6567356854314272"},"_hasShrinkwrap":false,"deprecated":"Mispublish"},"3.1.2-beta.1":{"name":"react-query","version":"3.1.2-beta.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"00a3fdf0dabda66801d896b78a8d680bd4371597","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.1.2-beta.1","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-I2bTWy12UtkFpfcHYiO8+ct0XustONvueBC0QIfiSrJa4K6rwk8nK3JKl4dbKiBtttQ3vv/9Losbotk+aYeFcQ==","shasum":"5c24b95bf0f0e72f184b21805d7262e321e74109","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.1.2-beta.1.tgz","fileCount":107,"unpackedSize":559825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgKiVCRA9TVsSAnZWagAAttcP/0lVACwdYoXDGp2jkYwQ\nIcgIny5y9Kwa5iKNxuR4jJPiaP0gQM/pQVRL8it4ofcS5+4MIkkjA+nuTs8f\ny/S5YaG1vzt6bLuL/Yibn/WHR72LR3zAwHO+9CVOW3mp7YY+Jl7cpl91RLP6\nIn8hNso/BGrO+xNZGN7Vmz9crZJFkuqpYWBBFK6Uu/DWIx4m5B+dCHbNkaZZ\n8+QpKbekzu2OOwta/w3yOhcY0MCiXeXBbZxqhuJlsrXYu7Vaa+UJLt797EPn\nnZm1YloZHMCUx9PmprrwozBY1cx1prKpborvhriGpIvd5/885KZblxVBaHQH\nu7oNznL8LaT8aGdrUFGq50uBHamdwtoZZHB+t7fI6iyXL7SXNM5xzUB9CY04\nLG7c3J2UfdbArxQLpcoJyexBYr7RtyvoWqSLViO2/xN8y/60jBMZawWu4ROD\nTHsimI9EqqJ9hUQ4a3djdn+//8c4AzukmR0o0+p0y25CTM5l8RCNj+38KRw/\nfQLeO6M5vejlLPwuT4Nn+VC7c9/yjSUO71Y0CWuQcRSU43+222SEmC9ec1w9\nsJoHxCZAJaCmhkKoejJbAk9FGgsDMp4r6sixyrqEFL9IyY8hZuTlxky4E1Sl\nYMU8EJCuLjvfDiLSQtjjpZ4qV/2q1Ku48+tMAAjSsTVRT0kp1pUMpJQ5jYd1\ni+dD\r\n=Efn6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCtIjY/CqwRgiISsGIX+QblXqwgduSd4xv+ypJXddZDAiEAsRdLNdc4VwmenUG1ugj8GkLadxbEJ1OMTV7UqmyUJZ0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.1.2-beta.1_1602267284827_0.1492863181340982"},"_hasShrinkwrap":false},"3.2.0-beta.1":{"name":"react-query","version":"3.2.0-beta.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"eb5078b9ab0aa843dc27022f8df796eef57f9526","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.1","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TtCOqCW3ffjD1GtIGzciuCMBP4hAR/HHxowkMlRXpHeiNc1IIQOXhy9SQnCUkvbflHiTolgBMd6JkQ5TZnQLjw==","shasum":"e77fdaa87e004600bb8828f5601249e61d392750","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.1.tgz","fileCount":119,"unpackedSize":659557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiUZXCRA9TVsSAnZWagAAKpAP/A7k+9QDRKuZTtSjOG5R\n4ZVgd86LLA58ENzcU3KYV966vIR60ggWGMJu9d70LB1UtEAE/zIlyUwS/wBk\nD6oMV6e6XK8nEHxCAEtjrIeUCCgQkWLAkykD/phtrHkkw5cRny0VVouVpJ7d\netglF0gqKvZSXlORV3zakw2m0TjY9fACheKsBjeuBF55YFLwzVVoFLxzxXkP\nCP2vzdosuJFEE/YIGI2UMZtJTkb4nZWr0nnEi/VPo8AUVeKFB9Ha/IEnPBeQ\nBlvE3b/RZLK54O4mE0vpClPLybuI5x1CEFQi7Px+rg3i2K/z8cLVWArJ3oL0\nKOtUsUWUBgPYxrCDP0SlFxHYdETpbbt3nQQvpcp38wsgGlAW4F+J8kiLM/Jb\nnR6d+KwfD/Ld3zRTpMpv0hiGwQcDWZ8BeyvV+CdLboA/+MbRaRWg+G/7V3RO\nEnx9uY/mmJ/bE7P1EjKnv0P25O5Y21FzcSfOt1F0U8KKNpbR9irdRy7QCtN3\ntSO04vWXDniP7ZsujzbN7zoJrlUROcn543KrwZVuC/yKFu4r2YRgyMxfsMZk\nYIy3bciPrjj1exlZ/TbtWxbKCJ95Hon9erqXPirbxFzQTvh622SYo5+Y8JFz\nis1U0DM22lU//DMg8193qc5QCMTDBnLexUcjwDaZPWeFOwjDBny12nf4gsxp\nys64\r\n=X2dd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIASF9Q5gLLjX7HfEOH4m+OM1u6zWkR7xynW//0UgBh98AiEA8G0lORWfBMtm1YexmQNU79JGXvYem0R0k16fnkW5nY4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.1_1602831958378_0.916119469358436"},"_hasShrinkwrap":false},"3.2.0-beta.2":{"name":"react-query","version":"3.2.0-beta.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"42b33f17404265640fb8c81a5c47479c46ca15c8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.2","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-cHQ0y1asdeS1OfwoZbDncErF3XiJ8HZcN2HkCAGhHgSzfGBgsnDVaDhignWwLeyJLQsf2Oi7IfGzLBP9/axJjQ==","shasum":"c2e246be5cdc5bb98767ad4f179646c96116b4d9","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.2.tgz","fileCount":125,"unpackedSize":679846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjBZVCRA9TVsSAnZWagAAwt8P/0o7p5fUNC4utwzdwE2o\nnC804kwpoad2SEOZFfbFhTxJu4xARIHnSDcrh4Imq4LpRO+REXuSzDYs29gn\nl/uj4xM/WlI3J1azO3vEEwuAmXJF7q9HVAoqDzL45I5m/W9dLATS4tdGRGAy\nX5TBiMb/1e3AJGrM7h1MNUvZjQtokG5FbCWpo5TQMOUA9lufzI6pWTl3o5PO\nCms1mTOL9zKTsU+xlxEJCJILk+jD8exNPCPsPWN1gxgsgvGGRMy6yQraRlUh\nruIIxfk3BClS9qQCEU8o24qN9L1WrY2Ec8Mx5HejpZvGEzbPyzO15ELMmoaq\njrGzxgA+O2CrCF4bEp6iZJm9tOL6g7n2MnCnbbBfku4YSFW44dwGTfQYhxeh\ndYMIFFgINx7+9WQvc5EY6m2WrD8bry3ICxNbiZYgfEMqXwRWs6oLHKIWylyT\nasVeI12wrbd4055qy576fRPN61eG+A3VtNfHlv89u1dTFcOKNwowyi1HV6es\nzkPdR8/PH6k8zxyIiA1IpX+xCyeClwhT+de8D1N9OwCHf83p4H/qGZeN0McQ\n6LuUDfEto/KBGYVpTzhnSnFYJkRedT0JqoavJiyyP0HREqyNnQC2qbVdSYCc\n7SX62Yz7gWO30fsToThTUZeE6523sEYzQ/gps4GrxbkX2chsTobOv6jmkmnK\nQfDr\r\n=Dck6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAHGiDj1hWdSimuHXmev0EPq9X5DZCkplQ/TSuMNhlVsAiEAoMH3dTgG39xGpE/dQOYHUoO73JsS1XAvq1Squk/qub8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.2_1603016276518_0.16859668795272498"},"_hasShrinkwrap":false},"3.2.0-beta.3":{"name":"react-query","version":"3.2.0-beta.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"bc37266f24209440805fdf44ec78ccb13973fc73","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.3","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UklPiR4ju1fuvWON7KD3f1RfvJPHdK28+6cHsrhiBSwUl/XbP/O5/y4Q3cuBU5shXWScyqUpsLT1vUTi3Zb3MA==","shasum":"df0b7085119447615d6b896b62ca1b7e139784f2","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.3.tgz","fileCount":128,"unpackedSize":674238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkARpCRA9TVsSAnZWagAAwNMQAJxU/x5L5/KFROMB99/4\n50OS9FzFNMy+6iBshAph5tzTEzd0Bj+hcxzRt6k0XZ0gBAjzIUmmoMCucF6u\nGvgkfwR22qy8IYFQgKuwGSM45KDAmNAFEUfK+1pojUEhh099p0CD8QajgcIw\nGS5crJvoiHcdhMkGJLdPqivZWQW+HoTZ01JnEQFaOxjMDWOHUUroCgOcb7WM\nvGHb/8q9W2lT42rycLTlf/0tlDkavMnjUckXBoe7XK7fpNUvEkYsbz0RXnSH\nQAxcmypZlITqiSgYfhZkwDDDRvhZhp3Z/Ss1WdLeyIbnJaM+HU7zrL7fPUqW\n5q60eBctm90TH27yd7bqN4H+isidssQKz3sXuAF3vpCcuKUx1g772BPgV+EJ\nwXgajCYmJhboSmi4xDFLKOhkva9thQc+1IFk0ReFwwGa+En9/+GFH+upoWiE\n9vf8BCJYM//jbpBk0lABun6A8T3TDczrWBtWYyPS2R/Uq1it7aZHGbI3J4w+\n3I0hwwbU+iffa94QtP1rfMqpcxtlHzs4xNgaqRpitwNnvsZ1IX/qyI7wMCFb\nYpW1Y18EcoKcu6kLMS/a/Wtt99xBPWyqcHDN4vnHB8ali+nk/Q88z/aBN9Ao\nmIRCMepZ4hA/J50xddd2uNd7yX/WTE+DlTto3R0RsZnjoUFygzeIqy2WErpj\ncdJ/\r\n=Vufn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9k0SQMD31ZwIfYIrYZrCoCOimdZX8QvBdq/72vsHOEAIgfixtxqmgpXBhu3dlmisHRizHl4GIbY1DaLG0K5YMQus="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.3_1603273830775_0.7638364503341555"},"_hasShrinkwrap":false},"2.26.0":{"name":"react-query","version":"2.26.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@2.26.0","dist":{"shasum":"dad6ff397f3808ef5b6259c84306cf4a1583d98e","integrity":"sha512-xP8iKnNJqauJWQ6O34V54zFLmrQXg+G+PyXCLbYgSh1dmXduRSYXMHShERhXrTPdcm8ZjovgRZfqKkjIxRbupw==","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.26.0.tgz","fileCount":90,"unpackedSize":884848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkJcWCRA9TVsSAnZWagAA1AEP/25uVhA9GPjo7iYrWFG0\nmImLXZG1gFFl+7nXJEa6DySrukWBvVcDk3ZD5toUABaUc3cyEJxlfka+/yQ2\nYb/Tu3b1Vu0jDD18HdtQPo/kKpqE7TxWIE3EeC4+j4EfR567KfABW05LMjAY\n2yqOy4LOFuuisdVKrITOEGehFEyjafOSxRPti1yvc4SW9LUzjY6FhHH2Sb88\n5ZCkTwN5ri3jvNLeg4eKalrKxFVqV2JRXv6zfzy1EDLoeoZnCrOjmbD1kk/Q\nfY5w5tS4pYpyDYVYTihqkPxc6/b8qWyAbtq8xN030KLWrHoFSqZAz0mqodV7\nwdnsuiI7PGnI4MvWDfDewoBZJnjmn8WHvyC55JCW+jxhBp+wIUa1xwRNomZz\nE5x5jGmcRP3GQ7Fh38gvCP25swRA2EhBWKa9rWGoNfcWJcZ7Ca9A8bFOqe+c\nHCWwGIF4N7+aksZ/PTm7KoYizxQ6Kz29A5CDT2RHfR0Dj/aogWkbCCOWAOHD\nYzEZtbu7T8RUx2DsOITdxxd5DeLOFtkABl90iYiQxStZxFDS+eYF83Im9fC5\nCd0DqXfSEKOlSCJ8unrZVkO3XQ0YkLXfWjz16UEnN6qCIoLO3HMFUl2/a1uZ\nI+yMaQRBxZmqYpClbg60MCcLE7XvAwEZVGMg2aBYBQ3tOHTH1IzmJnGV91ZT\n3CGM\r\n=B7WB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGaPG0K3W4MD7D0nvUSAsR0MNQfZuFlDxuIslIr4nCztAiB9Ohk64y2tTrucPdTzuGEGG7Z7jERNR5SVv+JVdMJhYA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.26.0_1603311381675_0.05835338364752363"},"_hasShrinkwrap":false},"2.25.2":{"name":"react-query","version":"2.25.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"f8ec3c1dc7c1933095df58ac02d1e458a7b94170","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.25.2","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-GIz75WlRAzJ+wKos9VPw6PMAB3FqGmB2lHtRZlvKKByurlMNHa5rOFPz4WCYGWsPBSk7m6FHWrkK9aItDrP2mw==","shasum":"afefdf57a166bcbf08c93a26522a8c6cb1bdf849","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.25.2.tgz","fileCount":103,"unpackedSize":919382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkJsGCRA9TVsSAnZWagAAwU0P/iPd5IRB8ho5p4Yf4m7E\nq2VCTFJkG0+tvOOg4bfa2+LFYtQrB09CYt5HNa3OyRA0a3rtHv2ImYol5ZSM\nHmGljYIhn+voKYAGmWG9y42b52CkAMXtehQYyayenAld+k/pAcfC9/8VbIxq\nHHSlwjCD2/XoMgRu4UKhltreIREYI7lBd+FB+2vBIjuPoKtkSBW5t2Sbt3wy\nRbwwg2zVR7DegYTN7AQ1aFFOfF5z0avSZl8e89WQPR8jL585t9JrWfprIdwv\n8pEbJeamNvHUOmLF0dluXGsDs0f4+tsCoSyrPgARYQEbGpGsUPEvt/byNFlH\n4oaMZwIQ/KKAAb0m3NmIHLIG4uPkiLc0Ppx3cDNFXI0gf60wDgLdx531OYig\nkX/Kck65YEpcjlB7PnQAQnBtRJcy1TDWk55TJEWmsdcWfBzVe+bvHXbx1bNj\n8C6irejJQjIOmwsdUzzy7bohpxIToc4qqMGuKDip+C7mH1wD98o8XqfKRAAL\nm0toWstQjFTSVPSM3O1y7G00tbnxoZNn5Z0n4QeR1wvgxqoLhSELhAxqycyP\nvSR/MfxHf61qIl74rsa12ltv1bVnxD4RHYqsc/shdMBn067ia915uhwXVyCJ\njE6MxfnyXNTjsOSbz8k8tHEb38yH+9QK2GYx9BPribXJiGjwveC1yKsC4kmo\n/nEd\r\n=nivh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmtBIxAlEMBCHLfJMzzj2Es4p2zCMGOvYa7V3BS8EkAQIgPv819up1MhfPWTtq30cZIYI9C1gpRgn6YCALtyzxm3g="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.25.2_1603312390358_0.5737650316859244"},"_hasShrinkwrap":false},"3.2.0-beta.4":{"name":"react-query","version":"3.2.0-beta.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"5bee9b6064cdedac872c7c326dec88a4966dcc9c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.4","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-/ALekz2Xj59g50+V6QHLwjuolYJc2Ms70Tpsjzgz3jQiS/YBWxy7DcIS6bnwCktK7UHXjjlXHRde5OE1QT/IhA==","shasum":"f80258b6c96e7755be7a7a3d990f859af47331e8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.4.tgz","fileCount":128,"unpackedSize":678065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkTSCCRA9TVsSAnZWagAA5rgQAJIINKikx9PfiqTQlekc\nbjXDrqTprimJR60snvsJBWi7eqiNujpjPSXZ5vUJ+ME6/wM4TilINns0Ir96\njBWDCWSb4bhkQYD6vcRPSsajupvEAv7DPOMHQJOEQ708UZlSV5Yoc/R4SWUx\nS5icHWs/vwCUsJOKCH/8Z2DRhpzYjq8w/BAmHz+KCTaIObUOVksB++vj7/77\nhv6FGfeEltPHTWSMN0lOyUT6WP3gZjIzmlH0YFq8KDdlk171PgaaU/GF5yS/\n2XLhD16N1gkZY0qIP0aVgg52mlMTWUv8mGCdcS+mTpyGdm/MYyqbEHpqTdP+\nL+jTLJoB701+Lat81Sha9tc8CXR+fds5Hul/PUXjIoV7yznRufTOs8p70dWD\ndsQ6em1WNPkDfEDzwd7nipR1N5mfno11k9lDnsI6R53+0gAdQ7PbUYVK40f5\nzYofHS3oK39QSy5Ul3iGiU5rrP2qbgNiiO2s5tWg2NF9Md887sJ/k4/YhE5f\np8KUDdzGLEvMSNAMAUZ2RiL9lwPWugRJCnNfIJGvTCmMXDhbKoXYEeH3sZ3C\nL4b2ftqfnX7tNw09I7wPiioaXwYnuD/xLNz8GVB1pH8u489mz5GTPBddJz1o\nCFghPM2jXQyL36OKI4QxoxddZXwEBzsWAgEANQzAEb/EwhG3tpaa73O8ma1J\ndM3p\r\n=XljZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCizrrEkZGDzVz9cQfUqoqx9qu4LPjNMTy/AK1FsCI5wIgaWjYNXueHaANJQ1lWhCA0HWGe04UuJNrGmFRm1MV7yg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.4_1603351682389_0.24228798458404577"},"_hasShrinkwrap":false},"3.2.0-beta.5":{"name":"react-query","version":"3.2.0-beta.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"a92d643a0bd476bbf17631979b051d824e7b97a0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.5","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ntYxFyKkGO4DzaII5+XLLUpaySP8vyEd4fCFa/hzEyOmiTlJqXIDZS0ofdgIIaV5xeuOkqs7JANrCaq53VauSQ==","shasum":"44dd559f38aec8bf45b59c48e3c720cecc1f8935","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.5.tgz","fileCount":128,"unpackedSize":678102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkT8+CRA9TVsSAnZWagAAZWYP/R8bZhC1+n9uAKiUSOns\nrZB97onyg0E7jxUrTrmsawTXFjmkQ8iabysmdcIyyxHFPt0jUTBTBV7PrKnm\nlcwI+9PRCaSyK6kZPJTczuh8vOxLi1i0bWrTe+Y+OENp6PgZC+EBofXVkMvy\n9QjU3xmkQf8i1wBUOUXZiYPnrbC+Dh0L9F4P20Q5m7f/gQvM4ZMuINOjopmQ\n+3Jw61FBwmF/p0OUYed7r3NAVBC4rX55JnboYs+T/tUcKrp8LP9m83Vx0YoD\nA1wChOkydiuN0V7fagjc7fNp1jayK94aW3e2kTI7b2ai8Y3BF9dMF0oidtlg\nsrC8NTA15GmaEwOAhjAMYqy4rbJgesS4CZs0aup465ykAP6LGdbOtcAjO7uU\nEb+giRFZDftamNYDDE2CEgog+YLa0F3k68HRBZe/3JtPJM0r1c/GYZQ39RPr\nwtgL8+YVrRFkxm0uO1IY75tMsZ8cy8BWRvsuPwsxnM1u4QQcySzu+ins+EDg\nsWxxZTmRGbFy9ab/ieBl3v7m+i5CQJNdPVzRpfwm/nUfI8Bs2wCEMm10HFVi\njb/DXH3P0thM//gda8mGTeFvshlL+XAKwxZOrJjzvrdQf60vuQJIQxZiwaaO\nlqpYhDzzrlxPOw5EdAm7lMRaek5hi8lRWQ4055vvwzssvmPnXF+8TzfVpw5T\niuUF\r\n=m6TP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ14XMnWxE90wqKK4U+6h60YAiFkhQPDWT8hZwuoXoYwIhAPZNZbdfakaJzTQXegxKjDRyQwgH51+iZZMucSgldN22"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.5_1603354430340_0.45190886224795435"},"_hasShrinkwrap":false},"3.2.0-beta.6":{"name":"react-query","version":"3.2.0-beta.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"f0ac65c32d606bffaaf229915b3fc10a1b886ab8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.6","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-cHBG2tLD4DROLb5Au31j95Bqt2506XN1rVmpZi6z85F17ic4HCjsR+bp6XI0Atpctx9YxcLQvISnwB7a3vnAJA==","shasum":"2e067d21c9060b6f7613a478f0379260b4cb7e94","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.6.tgz","fileCount":128,"unpackedSize":674865,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkW9ECRA9TVsSAnZWagAALy8P/1oEKY3Sl1c8Ei/kgkyP\noMQahGxR76sOKr9Z9bOD2Qt6OE4RM/dSGQ2xfqHbtK1swgowxXZFj3iKx5yk\nEe2W0byT3dE86mQr+/TSuyPU5c2XsI5P0dNiZNfpgmGJZ4ntrP0i5VYjIKeg\nsvpTWV1TbPAAEVoA6D53njkLpnQncalMwebD6NWqmpV+rk8FzQyH/Apej36x\nMfajnYHMpYehKHARcaLm9TsW34RdkOkfpVUyEpVPjASqt494UXv+DT++NxS0\nJZxzwLlZz9nN8Mmna+eY8bUQzgbcutPFdwal3vfDpFX36MLhTaoFIyM9CY1A\nqtxDM+dpH/kU1P2UZ4ak7MRR2vzz/ejJ5yboe7EeJJOFRT/RvVvPPoqJjqbz\nW+jmPN4TTH/+V5lZUocqXykw4I6rOJERFFOP6J9VG8AB4NY2myvWmb+m8rOS\nbrTq8atr01ru2l168jvlYdch1LNhp4uGhTXcVPvjWPgXvmuWQ8rxNEO3jSOj\n8spdKshlOfvShevVCnMBM2ji0vSA5DSnyBsWza8UyFbor2uFjME4tTy4kn2/\ntbwUFn0qZtMwQ7RhTKUNNhEYfS+RszhGJ1/U/eRXLva1A2IPMROFSRXjjNBK\naywVILed/3DpLp2ESqP7G3jXjYoLzRhoXFANSRN5D1vTBim3WX39gwYW/Jhx\nDAv2\r\n=XE8q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDKSjQAieq8ggmpSzv8XoSpcpQdnTblkN7Y3FbzOyndXAiAvBJxITiRrDCeG0w2WzNqPc8BkRTG73JbF5EXI4ZT+Ow=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.6_1603366724036_0.9230417062613414"},"_hasShrinkwrap":false},"3.2.0-beta.7":{"name":"react-query","version":"3.2.0-beta.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"90d8e81bfdbbff2495b60b8e63ae2987618c809c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.7","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-iGC/kCf/Z9UDrPt57IeNPFHGCljE8Ci+tX1H+xBEnQjwNbXbYshiCCOtvbyr/DMceh4vSXWFjR7gSBny/TG6yg==","shasum":"0766bcbc28752a2e9eb4d23e680303947e9a1b4a","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.7.tgz","fileCount":128,"unpackedSize":676871,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkocTCRA9TVsSAnZWagAAMg0P/RIvpYwqxjhjHu01sl4g\nUe4aLK+lSo8ZGL56Ahxiu+YsdJr2yOxQKPQctvfOrqxJe6X1mh/MxMb4gEWF\nITHupBPebtWcrgRNp2AXRIrfAnrQNRWJe64sJnrlaTc/uIb6Xe4mkgH9r+Tz\ni1tYjbX71XrbZy4XEzAPsOC7aPrEyiiguE0rYTv1xlVhcDuG4xB7jmx78Bmi\n2P9ncLLyfmkakRVLA+B+zVTLyfPps4ZhuwIXqi4wyiMC9AQ4wWErWclNW5Lw\nR7QIIzAc4N4Bci6bi7dGv6F8SK7k3tk0u5kac6TEAnRDWWwvwbDwsAC6T7xF\n9y073qrYzUMqHb3c09A8nEd5ELasgJjEMs6cNSu7I7zOwoFpSS4XeZreftA6\no5ics1jhDpU/lW7gIPu+F9GGdyTk0nDpL7QWeKCyU0aMA+dmLQmNc2X3lK6t\nXH2CHm1+XRMFwI3bGbkYszvzd2daGWVwpn3w/Z1+c07zbm5ng6RfAZqhSxwW\nQQCfhzSVsTLOOyqmm+3iPn0EpgYDGVxK9WM9EW6ZZ0cGUcEj5/ItXU2OFbBB\nfbM6QrcLqNDE0xY1xEoCFMoRkh2ND+fdb4P9E+MCW8NL+TXCrnmEbR9a4nW2\ntLZa3VOE+5sqRhwSqOFxsnrpJ9Nj9nhk8rK4Dew+91SOynowjz6n5EZaZesO\n7PiX\r\n=gTzK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTHSrBm7piP2oJpzPtUZuR2hoebbz+Kvhno/pT5DrTjQIgRfksj5QZJVQ9xz99ppxXVYwZiY/z2AgLOQ9Yni7x0fE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.7_1603438354505_0.07071082208412194"},"_hasShrinkwrap":false},"3.2.0-beta.8":{"name":"react-query","version":"3.2.0-beta.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"f559d25ddeff1264478a73e46b23bec08b1bb141","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.8","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-b+uHtKc+9rf8mmTT6b1bagWprJoUvbBYQqVYswecuBlqG9crASHWNI21MUDL6CS2V3ijKMshdYoxBIYWaDC+dg==","shasum":"efe7c5b961cbfd9ee4e58b5d038c610d51bd29b8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.8.tgz","fileCount":128,"unpackedSize":680059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkvudCRA9TVsSAnZWagAAHdoP/jZ8TFCZ8yb7ctbSMDuP\nWoNowkUpoGQ07f61zZc4c0kFBREdpPxT8XjyW8iWT2UEw+AK8jYwDvfdm1Pt\n4H5aA8stqv0ptIEBulFC5VrFynZzaSFcNX0yXtUXUUYQwdsESKNyey34LPC3\nR0Qtx8x1DVDgD/agL2ZzABVHi4fY1OkTf5tx1CCvT57yF7E11NSdVMHiqGk+\nkDekWHp4jTfPqD4f0haA1xHMrpnXx0XtKT3+9wHjpIsDU6Y6y+gA3ZMSArqv\nfeWR44J/YeJQhRFY3j5y2rM+0H2kymzK/P37sLqROZOjJjnqd0T7i2P5+qWW\npOOlxYCfA37kURRrYHDAJCSboQblPWRpCtD1Z9rktzearEAdYDBCdgsW4DOg\nYQa0/jGDm0LcCRSlVCM4rjZBoJoael4UdIjJs4cMe0S73+wdUPCIOrnzHIsL\nEympDbuNAoDcAgLOQNkHU0HjJcmRUBb5vU7L8Akq3abFnFtvi5clfgbmTbZd\nl5G2yz61Ifk0xbQ/cnwVBHpAkTwCKsuPGGw1+7Kkxoj0A2F9IbwmgkpmFdNn\nCvY+jvZg9HHCKJD7jhi7LEE3DXDkWLdpiE1p+9CVJ5fL49qmPq1CA9VCmBA8\nOrsyecxWJMiPCK9Dd1qxD0IDAZ3jINcW5qrRr8qs+nbcKchAs7pEbtpCXRV+\n4xnA\r\n=j04I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9TrDF91qhWYinNkVd0UyH4Xk7PU46eTQ/SBh4rt0nxAiEAsHP0rtkp4p+bJ4ru2Ch7WsOOC7Oxr2Yiv87niouwjqQ="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.8_1603468188376_0.5754344553484103"},"_hasShrinkwrap":false},"3.2.0-beta.9":{"name":"react-query","version":"3.2.0-beta.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"94c3e9e18a416960d587353253602a027504bbf3","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.9","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-C3BB7ON7EVIxNqMeaTtI07Kns3HNOT0UNcH8/i03OPDKBqT/30CFTsRHllch7hYj0UtCXrMbg/7lGx4RVIPoVw==","shasum":"4c7502141bec24db0f81e3749879a28adcf92023","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.9.tgz","fileCount":128,"unpackedSize":677832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkyzACRA9TVsSAnZWagAAxvAQAIX8Tw5LsRNkc2WG/ROd\nBifmtFdC2FyHbdxXO9eqZvqYc/pRAFNpAZDNJGdsxfyFMlR7ytmWDn932O+k\n8qIBLovN1q951dTmbEo7CnR9uREoh/5S/C6IPfol8vwjLXqwiRUJ8UZlxFVV\nf8lZ5ExvnnoGq4TkdSqCAXmfpmICvz1NcsOD5Q1PSIrm4Oi/CeEhFkDLM77F\nDrsLa1/4jKElGLqY6ZfhEjCcPsZ8NRrcdy1qjIhwtNz92Fb0H+VS+eyoNe5b\n+t8ntcDFf5gJatTJjkQg9gEOKMmX93Z0Q3/XyoXDNyWhzbUxZIznmWnFJLyk\nP2UEYjw1OFintLYwpDBEJj5zh1fy2+ER8/3T0RSQelFzK4j3E/gXNXgSRK3g\nZ+vY3Ksn7pg39O6hnerGMp6XTE5VezW8wS8IHngUJ78IEc6wimoBwDot+0p2\nLN/aQG0zbmX99ZY7FBiFJkExERmAaDRjjPag7neAhAQ48Pkv7squGR4+gKrC\nHtFvEU+fBY8KAVZXdIVJS8E9qvgOoPdB6QpsjN+VHDRlmpeAt5niSLEicYMG\nRWMVfb4ohDY4bPYHM0lGUPGR2y9sxN4FEC+rKNDhimVjCD/iFt4XTMwztuYF\nyBXKRhfJhnvVcqPRhTAaW0KKwj2PleETlMZKVAc4PmKr3vUKYzu0wYRt8Ngg\nbpyM\r\n=Cbms\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG4tgUGE0ZlCTE0KedD3inKfXjAE3bYSlA4iI5pMdX/wAiEAjISM1Q9N4/qr1+YzBEQkUB2wCFbJdt/Qu1iI17UgK40="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.9_1603480768298_0.09666132958068463"},"_hasShrinkwrap":false},"3.2.0-beta.10":{"name":"react-query","version":"3.2.0-beta.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"354536230eacdb1e2f3340a98bfe0175931b8cdf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.10","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4PbAywzIi/WWhkxuYr73xAJLwz8i5SgcPbSMLeN1GUQJOH1c8FuGxLL60Ff8QyC83AzxtBfjat/cLRiwNiHvkQ==","shasum":"840f1681a4ba625c739fbfe94f1d54a4e47d2a59","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.10.tgz","fileCount":125,"unpackedSize":681220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflCnOCRA9TVsSAnZWagAAsNQP/1zfLeu3oqr7BjeUF/hs\nOF24P6XwjsHLRuT2kAajt3czUs+lpQaiiu9dFapbPCTY4heJE9oevq/DA6KQ\notdoHj8HE+kN7uzzwHmw7VROHGpEH7tTKZp6Gpg//TMWSlqTVCGsnBvWKkzf\noI3nirCNVUnXTMUmL9SVibfRZPXo7xxX8NLNu3qESV5MYjq1l0AGo8HOBxj0\nnU5gXm2q6ZrLY+kuOKpPa0wQap98kFwl1YYpEekaQajI7Pmm499RB87wZBck\nrV+BtSH9r2wZhWk0j0SCgG8/1MmKVOu/R3yDEfCfOwtullNwSjs5w7L15Zb3\nGiGavBMIeyeGJq3jRCEnWo/x2AlzPJmB4mgkSwGok+thVowFrfuHczdEZSd9\n0jGv1Owc/svFBLMuSOtMzcwFKHuhlyzi7TUGza+SwG8gDx6kSXbKM2I5nEal\nJmxxOHejT7Bhmbw1qbKn+V0eiED6XthYrJRZCnNwhLVwiiddcDWrHSy43tBM\nEjM/d5kbjIE4FQxRJJcih6Uj3Au+oQRbe+K1DFbtzX9O3zCdsgyG364/EzgJ\nMvoJLC93ug1AJw/X088ImRv2+7aMTIkF4eWuky50/pSPAhopQuLWEZ4Pg0iR\nD704BdYx4Le3JsgtzY0ze2p5ZKU3cCd9h445mNtEi+gbVaIY34KDx0X+rbTP\nxF7z\r\n=U70c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC11i2ONMwRvgLHP/AvHp7MlgSwrpPGGU+fe5fnZagcJAiEAydWEdTjOaptWz4AW9SmpDVV24GmAqN1fgzZ2HfRc7jk="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.10_1603545550035_0.5998176560422008"},"_hasShrinkwrap":false},"3.2.0-beta.11":{"name":"react-query","version":"3.2.0-beta.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"8b57710cfe7cbe093f68420685c746309f6e1dbf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.11","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-pe1NVkPtrOUz2fxxi/VYuZ98S50IM7ZPs5twF5Y63qGEIcAQJVYQtj3j7yiPHSjKR+yZqGnaA4L4caOHMrWJdA==","shasum":"c8057f5abb7832121a8a491f5f4724472282eed6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.11.tgz","fileCount":125,"unpackedSize":681856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflERgCRA9TVsSAnZWagAAF98P/iBRbl9lfr9V8Oj7mj2k\nggx4PcVIDAPzhkdLMtJQJ4eScuIH2b620h4qjsi6oSfK4IDQVTWHDRX6i9nY\noPKZtDvdQrF3zoYliemnnbmk8aL6WLB/NWDsRG9KpFrJKSKJDil/GUjnuu4F\nwBJk9bRuSTyB3Mz2oZEyYVMRGdQU9IHWwblr+rEhxjZ1eRjnvb0qQLpSGua6\nbKrwJOn+90IOSLmlX3dYaiXDuBsfHkjgI9w0hPMkbMDDhUYGqwF0/e9GDyac\nL9r8w+m0niP3SSpPSJtVBchh24sbAToQNfhl/5SUtZ9oNmsKL2eCmpnxo+lI\nLLrYiMhmgYCrz0yFA6iS+jPgIwMh/o+RUKBnRH0/Qp0Wm5zKYPWMjIueYP01\nSmmu3B6AB7B6WTM5Z/fjyJ0eGHxv/r1pay8g4QK6d0tKV+Eull2syrT3PfmP\nOxju4/CcpfxQ5r8aBMppF1JPv/aUpOOFfGgwXpfts2uPyVmxvKbcJ0zDRUZL\n+lTi/k4Xy1k+McIWZUutJGFV91s08bfNEMoNLrTeI0VwZBI//04/A6j/iUgx\neANOprroZ3/fAKFWV8j5DPo86QHVmeNDjXz7uZYfDMoG0ym0gD0FKRo13fgA\nYnpVT5+nWoKQ2LUvJnrcex98eM67SlUcCoAYmJwqusqSrc7/g5Ss3jwIW474\nFzt3\r\n=oqIF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtx9GmgdLvMteVhBeTNmtcwuUKnyJVm0k1lxF2p/hYwAiACSh4tkUbag2BqtQ653SN1JDkshlohDrmFSrqNKUVmlw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.11_1603552351954_0.5331495313289965"},"_hasShrinkwrap":false},"3.2.0-beta.12":{"name":"react-query","version":"3.2.0-beta.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"bc4a001922243b7be6cec5f580a74c06bf6dacb2","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.12","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-v3CBGypO68RrsD/mrR4X1Yn/WCll4veUJmkeoIAO6fgus15I7wM8bFik93+5WnLMjrasZGonGCx50mAdTGQatA==","shasum":"0de11bd778d2f03fb70afddfd357fd9a8a30609d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.12.tgz","fileCount":125,"unpackedSize":682194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflFv6CRA9TVsSAnZWagAAGk8P/11J2TaBB5z09UQFELEX\nFY48AbY0ifTpRQgE47noq0qFEr05UZhAT5k4wjT66XcXbMcbC7WVPN+WJGnk\n/yspI5zkxZqUFdd0rzW4N1ZylovQBknP7oXKmQXDepol1KnvPBMYSrN0nIe6\n0cLLy/XPSoey7AiBze9FI1SVWj2ov2gKZcnUgDi9IsQtto5uz307LIKjGMim\n3o6sVxigcQLH7XUqEDrWvRz2Kr0J5q9aVuWX6EGmtEN2X8OGHB8f76dxM8CC\nGEd/EgBwpKjO4W+owiFLdhdBhd2KAcu2B4FMkalMS0E5LNzgLgiAk/WTgFtG\nCKrdeYMOzPVcutvekZpk8p+dQ5As0l122r1t4ApBjA24vxKtaQIvyTm+qpUn\ntDPMuOcqehC06th7OD0+MNv/knJksJa3+nq3n87Xyv9VuHXlUmvuDBJDf6hh\nXxaXhOoyGIVGjsbwybyXjn5VYBbIPE/Z7UX5YTMN9l+3RVnaubr7j9cXKmNm\nT6uKYuhpvPg7hpK/yhtJlNS5IgEb/DjZ6PrZCpbhvd7sYsgQ1ZSqmWDMsXw9\n0uh+9URP9Z0/q83e8VqZ98k2KyxdsZVtUQrJUPQk/H6LttA+YlzFAVY/bXEe\ninVJI+gowcNU0EEInxDidIXnazLRU3YVhe64BkeJ3EoujzWiUF3MnIxcYB5e\nv1is\r\n=7G46\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR1dj2ylAIt4Sjywq5UnBXtag665h5pE0GkjZkIv0EmwIhAIfbJYvgY/9lrYg9TqTBDTpJKPuN07bxeWGXHYsnrDLs"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.12_1603558394191_0.19423413858838234"},"_hasShrinkwrap":false},"3.2.0-beta.13":{"name":"react-query","version":"3.2.0-beta.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"65f9f1283cd65270a57a45e35891d7c36afec620","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.13","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Inx9RPm8htPCD6Fd5KWF7JYXpStCMbhg16BSvqVuxqwrn/kj0p3YOftWO2ox3yDs2U8/0AL9uKICsRWMRlY5tA==","shasum":"21c17a3e34f8fa43a6ecd2a19c3c68ecbb132732","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.13.tgz","fileCount":125,"unpackedSize":685677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflrePCRA9TVsSAnZWagAA4XAP/2lwKhWdmb4zsEgTHdmi\nv2/mPNdK7AblfNg0InLXuyCyiPKwDNIlyFG3/IrcVWoV5df7CQ9snoXh4GIP\nBDiSSyHKgSjkGR11Gr5ptpn2l44rdGMnJwfrzJwwCVrABac3TiHtEEs0/AvE\nJTX5vDtWj6+tUM0h4YLboYROUg1Uoep0w4mAMa5Q8S0HvR4dn3gkZQPPEGDY\nwDDc4I5CWLPzwVilF6+X6pOGdTEtmoskLK3YrzUuBSTJFY6tg1qCx1Yq/Fu7\nHa/jrn8LdVjXHARm1IUR37MpqcHFLOvSoD3SOCFhcUcbsOZ9tKEZSb++3Q8a\nCIhFLna/ftayMD7F0AIzClxE/ZaAK7f7R8JSJ1b9v81a7XgkrzQ95Mk6RIok\nOIYv3nt7B0x/H8IffsLVjbFAl7wly/7gBtWcRl7AmzU2C+Ol/0W0pMexFJ/S\nJS/lHthBW0EHocm7C+6yFQEW0Q4svdcTY9uNmkFFyAwia00Y2I7RxSILnSTi\n3LyZir2X1YwxxpKMQkVFSPSFZSeVJJWVwrsM8ijzIwTLvO4DlGOYJeTEKthM\nHX21QshcS393IG/jxxP8HNwLpLJDio1o7x0ZYpZGYVLAaUpInX1d3slkzHSA\nyI6WHxIg9duN1VbscCo5zNbEGiaYuBcGlK3GLTEXExSRMMgcMatgGUfSm8ky\nZoI5\r\n=Ezf5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYTDuN7G92E9jT+6fCsvHwwmEWaUYXUGKUQcbISiY1lwIhAOiK/8SAp/n1iz9AeiWB44NdAV4n4fxrgnI0ZV6TiVp3"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.13_1603712910578_0.1634271584767184"},"_hasShrinkwrap":false},"3.2.0-beta.14":{"name":"react-query","version":"3.2.0-beta.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"81299ff9c56179b781cc1a36e060d83e9462e936","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.14","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UJqE7TtwwS8j0LVnhGt6BSkjb62vk1ON/yOb7dK0XVhDIgoOQpY+ga0MgvCalD2Gs/Z4YxpMLx8qh5lOqDx85A==","shasum":"f5463bed641220cf607b6e4608cf9a0c959558ef","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.14.tgz","fileCount":125,"unpackedSize":696753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfl88/CRA9TVsSAnZWagAAl4cP/iGNAiaAJ2XiBTDCGBG6\njkwrBEiB/TwrO9CA0RYRRVHXMTc57BCo5gOzkvjDFgoTjVmLQ41zqreNy6gt\nhuia8566HqORlt6Np/QHaxFrHBytub6szvAyqd/E3DKkTJMTtJFwhd5nKoIi\nvbdwl6IEdoLwpqqKY7UTy/MJSIO32qE55W34OPaCvrAJpgATMfBAO8N0QjJB\nwsaDyKBOLTb6qZVxA/LEQDuvg4ZSpEv0iW0vaxHCL9dG0Mq/lSsMtMR79O+d\ny6rDr3/9KDb7i69QllwnsjPnwGP7WApYTlcaGr4eWoXn/TuSoG+z82J9gX61\nk72lVwjU+C0kf5sRTR5BQYRigz7rf+V/vJJyJJjS7IgTktq663h7bAZbeZio\n/dZfshY0UEnN+mpeoOcuTZxCeMN5hsGpPG8+lGO5K90GEGW/UebeNNx7WcBU\nLjX5BrJDx/I/PDx+8VfcozHkS/1km22LEzMupWasfLHVN+IYcKIpLC2HD+Iu\nk+M43Bq7PXcrw3KS6FzrkPFYDi6jnqrFTBfFJxn3J5JU5pq/PsaTnwbO8pnB\nD9Xitzkx+WY7eHU8V0IFISP2c4ExJRWr105VB8PixwDZxsWlg3t1vY8rCLQq\neNKq1x1rUtNL1wFnVjDN1bGJoM1geuv5y4UNnoktfKNZEl7PzWo28C5R06m7\nDnHg\r\n=BV5D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcCGI0jateELtktz+OBs3rmS7gBuLDM2mFwnzQ28W9xAiEAjn6jNrAYxNRrIoMimJ6J6gCdf9yNVOQ9SKbELrphhho="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.14_1603784511083_0.5631734492784302"},"_hasShrinkwrap":false},"3.2.0-beta.15":{"name":"react-query","version":"3.2.0-beta.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"2d98bf2cd21d4b988740601ab3de7cab127b6686","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.15","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-j1OsuyMMRA++GPsmLhFnlJx2y+a+Z+ijr2nOGxb1Zlv/APnkViY1IYS008yc5/4IS5Aly6Kbm+AJz8g1M7HaQg==","shasum":"98be53378d29bdeeba2a5b3e4a1d062f04a61b34","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.15.tgz","fileCount":125,"unpackedSize":699780,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm8KfCRA9TVsSAnZWagAArxwQAJeJGPc+3eXBFeqFnGdf\nFpBUQtT+YX0tEWLOB6OTT5lnFXioERKzFQIEyHFnxibe8vGNfuOFiBFzThNK\n/TEYk2zwsIKD3H5bivBLuPK28rQiYbitcV1qmfEXviLbe5LSmRnFkdCtEHuE\n7Zjqux/61AKa7DCB01u2yDyoBXBfoA5CZ0s6ALFlfMdYxg/Wden1lxTFEs05\navHQMcUb9WYuclhOwgkU8GyygmHqde0hmOChWvzS8LwFg8gQZRGQ0j7pVERQ\n1UkL5go1DBqz86vSOELQH6mUoO4jsa1MrvVM7JaFyzBndcShjDnend9RuB1G\nhdisk0WWDVaemEf1sGby/IFAjJrUCWGvvTNxpFwoC2hfZiVb4y2oEz6RAwa7\npI/z9O45yyd3CbpqznHEdjg2zpFO6Tk+AQvhoErrU+9ntMZAn/8mS0jxHVfh\nWfnEFTYgpSLLOaV9NQ7H8gE0IseotWFFyti0PxJ0V8y4WFxKhWSRSRNbha0M\nzRSpGg0d6NA8KZktXTfLeyL9XZqmtP/BPcrECDP8aWOney9dyHqTTH3ptBuT\nVi1ix0MQz60ccwpL09YPLojdyc+zbSCND/QoWZbsNX/E07TrtJV/8n8qxSWu\nOC02aZHE5GukuQ0bvckvjFkss/p2FLeo8gNhjDZDY6ZhrChgl9OAuinljN+R\nTwl6\r\n=oWeR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWoB0hpZD0efs4FyGLT4mjdykTTQ3Puimv+ZpdS3DZMgIgL/5zCam4/Jpdp98lGif3AEZG+oHcbgTe5KMBX5CjDHI="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.15_1604043422591_0.9013017779194492"},"_hasShrinkwrap":false},"3.2.0-beta.16":{"name":"react-query","version":"3.2.0-beta.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"6b3840b3ca3b5a2135e5dc928db67f9d50bd3b7b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.16","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+LtcBIeeKx4o4UUWvjwWOoVbfPsUG88uQs9p+CDrQX1uZzyhJ69CAnSUnXJB+R6wW/Of5zbGIaF2WjwyhnAedg==","shasum":"f09582d448c7457518c929bc864b808ed8882da2","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.16.tgz","fileCount":125,"unpackedSize":704987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnt+GCRA9TVsSAnZWagAA2boP/08qrkSzFBgXRhjDtZEv\n7SxwNBm1kYFmheAFAr74COKxi/MQ1RU6bv/iO9V5JNjZd3D8UlETKIb+uy/j\nVgDOgcnJbj3EJwu5u7kR7PbPQevkf3ih+9U8kGUj8E7HyDz7FXBGbakKhqcm\nYOp1nn7pC7+XVoDMuc0U0P8qcWUhzuO5jK4fMGbWoGASuS/bkhyYwK+53OAE\nV/2JjhOMWAd15C9PcIg2b2kS3M5yfzWChmyZtVptgq/QIWmBpnUnqhENKxrd\ntWxqyNUH6E1wxe0ZLMELL/v5AwWVVqwipsNsZd6lC6wv5659N1k5xLVrhhcd\n00dPhhQqaFXzzDM6QjMYZgqsyC2kpcJ/2D6zGPqKfNysfWLp6IhFsRnPPVmg\nnOV6X2nFx+vAa7npD5QKJ4tlRvncGLAAL0ogtTiHhQXr+cwzTybyNTSwIRAt\nTUhjD1VSqF8nnTJbg203uk2so6qr1UUfuqV8epYy+kkiKM+VPjf6SHroRdTu\nohiK23Em47+jsvxhsXOcBqqQZiMTTCujyufSbCUNlbxV4EHrRu+ZGJe5BuSI\nqAnZXoZC2rGohYpcGGkmJqyAx6hlpQ4P6Jbc0ox3zEwfg03/uaaUFd+rTtI9\nyR+ZCOxwtCDHW572x6gh7LUAEK6HWTHIasHyxle5jpY70vmumEEe2kT4UpMa\nAoah\r\n=/Nx8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEaWruEfzuFhXfNcpvmlL66Yr4eVfHE7yTfhqGFzPFTQAiEAywzJrrCQ2dzP1YgmhgyHPfFKy4l54tBjQeTgMAYWkVo="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.16_1604247429766_0.6190219071592991"},"_hasShrinkwrap":false},"3.2.0-beta.17":{"name":"react-query","version":"3.2.0-beta.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"7d850749a3d7d3eb7af6b5b8da105769758e9857","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.17","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-o0iEtH1mTE1Dww9QVOzd2UxjVmVE5JqIDn3yhGZfTedYqejcjRlJAJ2p1cvnVGW+g9Nlouuvb+qqFsh069YlzA==","shasum":"2bc5c36fa3e03e92e7da6f6796e5f392f1dbf9bf","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.17.tgz","fileCount":125,"unpackedSize":710921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoEkuCRA9TVsSAnZWagAAuA8P/1X0moToeRZCON38v4QZ\njbpavqwE7BnvOM/7l8qDo5LLIpVkDcbReb4NVVi+5jpittmtx1s+bBhm0D2d\nKGpQS1VkRcSH803Stx4BWZqUACmXON8o3ykhIWlHkGBX7es3m3mTflVZNeLg\n0oN/CuOyKeJndspnnwKZ47KMd/cVAHUm/Qiu0guoyvj346NsWwt22O7n3YsI\n/Zoy9sRl3NSjIf4MRupwPDDDuH2otYBZ4IFsNj0vuGhBoNRaDWD6aipcSldY\nLVdymJB2S1LiLNVyG6K/srNUl/UHTrbFr8zT4+j2dI88KHKvffWVDqN8PSVY\nSbW+a8TYKRN5G0JWhWQbxoh6Fl6nQiuFYAZ+YOBn1xq8lZycZ9E85Sn4GVH7\n1gSmMVrIQ4ayaBgUjlEL7anoirG6bXsFZanAiZxvNp64M7Hl7eSb3mZ4Phx6\nCdls7F9AxWzi3mgXvurrYPdVy8lt5p7ddAwb3reHJ+RRfh5pAIpOLSuHSJQP\np+3wALXf5sW7geK90XAPEgZoqQxHnbwRTtiBXI5wMpvVjHiHUzo5JUcApuaz\nEIeMi8umOTXvyeTkyGWhdDDQNO+rB2+jTv/hEu4J6VHiq/moPzj7vt4g0rDJ\nKRwpyCYynKLcm2eGluLtOdf2gVtPYrFaLeqsF6f1fZiuffEow0YawpnkVVtR\nkFe3\r\n=brpk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFmasrxN7KqqgEX9HnhWU9RyD8Oab5zODQGTV5CyA50QIhAKaTJESmljD9JTXQj7qx50j3/xUusE6bVxFM+2nzQkU6"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.17_1604340013153_0.12037900603362006"},"_hasShrinkwrap":false},"3.2.0-beta.18":{"name":"react-query","version":"3.2.0-beta.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"493120189efcdd5e72eb025109197c459b34f7cd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.18","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-h0jNKVR2WtAC8aE9QMWDALRYlifY4Xeblxczcm4tem2VSqlREt95OV9PzydfsTzafuz3fzyG8ZdYHT/7py318w==","shasum":"083ea416c1231883a1c959e8e11a79b392ce9a6f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.18.tgz","fileCount":125,"unpackedSize":712153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoQhRCRA9TVsSAnZWagAAIjwQAJoQ8tTYXf4WMa7kjnBV\ntcDbEYgGPWMrS7oLuXWKAP6nrjsz/Z1H/UAr1hGjwV9vVb7SyoTDVS3JFjPj\nnMqdUdJ6FUPgrtsaJoBjh2RvqUr0ctH1vu4h5tkMMYSwN1vQ8crzGq5e/EZz\nWk2NYtul5rENetX04234V6c5rrSRPRokSO347vDvA5cF+rz/7GlNqZ4Okkba\nrGJApF4mEbiWNQXZFlr2US0sqWZHvvAOdi/mF8OfPCzifXk48fRDNuZh5KDI\nSYtmsmiuAAaa2qosgAS9QCWXx4rnC5YMTNWyFU9exZ9boC4d/nm2pyCshvuj\nuVp6FYJnAlDJh7K3eG8CYWqySUTRcpXAl8mYcsQ/h0u2Gyd87P1DIxtDTkr2\nqxjKVT0Pj7JNfY3zFMsspLh0mlOjzXct4FEpX6c9DctkOU5EyBy6fUZH8+Pa\n95ZGM7tGfA3hiabkjpJUdy0KwdyXPWMaVr+N7JFHNb3eqDec4fLQ1YY4b2r8\nwjWQf6FetWBbkq7+Lr/wge3Awmechkya46FbtlJICprAe4eZSP9rJkfzqS3u\nLRd/tpGVYx0zdV0+8R40UI1pP1A+te0TIrbU4SrkXY6tvBpRPCBUZYfIMAJF\nD9wdDJuCe5HaESBin8n8PEEVWz+wnxeeial/ivWxlp5AqPH6tGb11RZNNJ4v\ny7Ou\r\n=9sJa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDkSR7gLj7eqY6oaHH877QTXkF8k1rN8HUb1m10KwWgrAiEAjabdL8H8SyefSJ6PTIVEfa+cqmFiwjhDiDdobHNodh8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.18_1604388944529_0.7484885600211975"},"_hasShrinkwrap":false},"2.26.1":{"name":"react-query","version":"2.26.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"61e7b9b8547900a9b19157898d52587dc04aeeb1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.26.1","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-7J280iWlb7LZW1eGvOnZwm4logE5Wpq+0rHHcnNjzpK3TW1pAPaPQYp3yE2Z4j5FOtWYhK64hoK2IsVOUCbRRw==","shasum":"9e6c47384a40e3323da4be961553943998784aa4","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.26.1.tgz","fileCount":103,"unpackedSize":919382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfocuUCRA9TVsSAnZWagAAmNgP/Rh5G0BEs8s4axM1RdSk\n784oO95SWZHNekys8J5W8ln8B85cw0gjYQb2qL7q5nQNATbu0qAOdOK364mw\nS6LolLDQKWI5bXmPiMA8hunuihiOA3zoysXDKiqDlP21rrxRV1AaTevvBUQ2\n2IaTfppJ7nJQh5mUSPJgrvCenDN63AYE8VE9dssFY9KnHwvFLtNVKBFrA6Yk\n0eaVDNNBcaRssoGBrJhcWdx7qpYo2r2nzmROqBr/Zd0JkfGYxdOZ+NMz696K\np6bvQR/BQIBKxCC829Aq/C2WKvcpItnLBWZxdR5ZAAcuuf9w8AONOa/rqZFh\nUfvwpdmFbwRD806kgJy5u5L1ScdvokenJaYytW0KQn+sXX4bU47wk1cXdeGE\nce1tyM1nSMOpk/lcDPTllo+z1S904AZpVTxtot/tiKuDbalHIvy+fEFmifcV\neS6femmugs2r9ydezrGtt1ctHsaUSbbVVWw25Bvz4EaJ1J7rbuDI4p9QSjqm\n/hSHaLZzIRzFjD5NCp73WmiBkIw91MnUs5j/4mh+4XBtZQUuksZAImkE+a/L\nu2qOIbf342pFX97iZwqFYRPSwNl/KfLmtdgy9lG+pJc/pLZ3i/I8Bhd0K/L9\nzG2cv4bqwjLeEEL25Mpq4ZyOV1AKadIX4+rhdbi0mtrPETLA/wn7KHLVc9N6\nJqVm\r\n=MUKO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC5kYBW/sHNL0Nqt+8bm+bTT7SD9Yf2YuDZTpE5IjrE+AiBGoDgBzAyeCtwFTs/HAaIFaa2zAcng5yIVpWW4TjEYgA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.26.1_1604438931732_0.41780024315481357"},"_hasShrinkwrap":false},"2.26.2":{"name":"react-query","version":"2.26.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"df3460bd4f002d7771f85a78c8af84fd44b42228","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.26.2","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-tJ3oHifWtI3cwklOLx5jIIj1ZpmvuWpPBg5iaOoi3uuIe80l0t3QCDTEF+nXpE12pYxKMj29NQ5OkTsOOMdP4Q==","shasum":"d6fb2dd0b54934f5d1f5cdd9f8d97808eb012eb7","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.26.2.tgz","fileCount":103,"unpackedSize":919393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpCbUCRA9TVsSAnZWagAARcEQAIzT6wDIRxvn3CEsC4zd\nlwU24AdVUrTwCa8HsXPAVQXaRhyJ05qrGzdeBfsyHrbDTvRoRRtrjXryJnM9\ntZWe4Nh+2JBxUBr8QCmogYFFI3go2FLyJn9bDDO5UZqbSf1foSeGkkkwdvcN\nsGCp+L2vZg/trv03Dv1i5b5h7nRpn0whvRj6cDZa6dVSzJ30Wx/ePNqCHscC\naNFydUhHBSGsDi9EQHmcZOdgNXlnJr0g9ghp/TUBgo4RkxuWp9gEsUgdHJwT\nuo84j1V7QsTTjqIKfuTmOa6l79rDNn92eLZ7ifDv2mlzUlJjUgW5yN2Vm9Lk\nvjo6KV4nyjXDZFPvcFSIj325ETcGdh09m0QeLBVhMwAR07m5JA8pAle12inl\nx21IEARZ2x/oYW8ETC9eCsH+MJpMoGb9hp+Y0PBOGkNBNFTC3FU4UYTG671c\nrEQ7n5wP4r+p8DlG6irVN1h4GX3RaG0BeTqCcfYI585UxUt6Fsoa5lv5cqbO\nDgQpJl0siWQHWgYXTRLZI3i4P0L4n5Fbn/ArK3VR3TyR8wxD8a/sARYUhqBB\np18OQSMCNI35WLc1CpR2IAg4j+oTkd2TTaVXih+Bcno6AhgE1Ok+0/dMneBK\nGvTNA1vM9Dy7h5m+0hb4MR+eKRae6VYoJ0Cii9+DSkRSqZdZWl7OqAPPX/cD\nKYCZ\r\n=L2Rx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQLUXxyRJdKzs22/e4jCpaCimolHLeep2yIXOwPh7ovAIgF5xVgo+P4BlMdUtavJ3zWf33oBYpM/f+zoDGMcc8atQ="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.26.2_1604593363707_0.5628682682969672"},"_hasShrinkwrap":false},"3.2.0-beta.19":{"name":"react-query","version":"3.2.0-beta.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"9cef1ea6d042e759b714ffc51a7963739d0124d4","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.19","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sNj245K8MXUwtCBqC3kOHjTEoRo0M5y5d6iJuodxfiD8uZ5ijLbd5AOAMaGwDC62BaqvSC0Nzq9mdCsxqtokBQ==","shasum":"eb2ff7e12a4ab54d5f092314c79a1ad664f81dd5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.19.tgz","fileCount":125,"unpackedSize":712812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpKHJCRA9TVsSAnZWagAAymYP/3WOeZGlo43wD462yjOe\nkX5zQ73c+H1hULzxRV5pPq++Y/LCfVWgFRogVuwnLs6UKn3qwghei7KDGmLN\nSjl9I1QhU+w/2ifXAABoaIVYjWOq1v7xoc9+KPIBuaa1jkPVKgq5dbml2zUc\nTBmBOx00/6yzldVvViMxhA2C7qn34b6LqRmAWW6xEsg+/5Mmp2TvgcYmLUKu\nj/LgFNYKKYXGGaA0l+8Mxk3xJi701H9RkuW87AIQe2khMB/HH7HmYs3gYEov\nWeSeRLIs5k7I8NoWXs+bHjXdY/hTcK0mV4ptigJBk0WkhOliRaYBfY/8LeZ0\nGyNgxOn3umVyz3sga99uHg8zYk77kcpofiFpVsRGyQQ7bd6BWcMedWRwDHRG\nBSa+MQFAslpZeEIn0nIn0+UhMHHYpqJCZEPmqTDX453NzGFNMaFX0IyF9Ugu\nyb1kw4EWw63JjLpy5y4GL4BPShGAqW7kLtk/HU2cK43s53ItvvN03cqJJal5\neYbaw2XGCOzIo0b7fgvdplgxKcbaQBowSTNpTsfxG2oUSDMeVQXQu8hnDUam\nNMYrHqcOO9rJim9nP//pW9UrfVsFPvASIMSdHJu/GoxsZ1iM/U/FSC3B2f5w\nUemcylYGoqzB3A2r2bdwq0osKyvK+23WsZncPVDd9qLlpI8FxcekVnhoEwhG\nLWCx\r\n=5sio\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRRo+PKmc0NvaydaaR07rhlwy7rOmtjSXeI0nPUwU80AIhAI1/GcMYZ3+uDfx1HbZJgBG12wp42WOzfHDlqsPkSZqC"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.19_1604624841186_0.745340121979722"},"_hasShrinkwrap":false},"3.2.0-beta.20":{"name":"react-query","version":"3.2.0-beta.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"c47f41576f794dc8eaae70b4e970debfe2168c58","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.20","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-RxHhR73u7SEErOoa7Dxog/KMpu30rj1ob4bauCAMB/2yjxfwityAHqlXJBtfVJZkEkFbzvrsLtJtf7SvHDU9vQ==","shasum":"881c9eecbe29ade55c96b277f90f477bc5069067","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.20.tgz","fileCount":125,"unpackedSize":713407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpP3KCRA9TVsSAnZWagAAm3gP/1EdaI4gSSN7tSIlkTbX\nua4GAO7gAYtscum5K080lGsfubgQa/p/z40jlB81ndUaicxiPYJf1Ll5uJld\nx35xt56o2KjiaWENa8gLdmPZAY2cHQ57IgasAafjZtz4OrE7kg5EKySf/TX8\nyNOiTCBK15z2BubCHIZwxU4KVpEPS3lpzXWi0JWwpZ5G/zs9gy4Ern6s48fH\nC+cEWWJsAi+VSToSMxQ5Y8nSphUWaaVLDDfvWI4ArdAAWLDCjQQFlRX3Syph\nVXcy3hIpjcTzXcuDqmi0/Lafgd5N4P9nFnfL+jdf2Sa7sKKdFYIcm9cmTzSR\nbYgp5gn08yk9Eg0swquYx2f4FJotB4N3tdFEjaCG4nE9pTXWTVNllZPFAzbW\nQvYM7dOsDvSywMilsR58UiQf8OhvU+OD9ubfgvfrItM2NqI7Lvrd2q7K64R6\nqwTftDaQ4nVDKPEtNJg7gWQRXiBKXpwlb2VWfa9aCaNCJ56fE9mSyLd0JIpl\nUhhUg0KmsXQyUAxy9eSnAAP8bqQKALJAh2ARKD4N5SYQIGi1IrAPEnfDUSKi\nJOC90B05uDAatQcTYGapnKREhQLtwCtP9qUdFCqr9zKCv5COqfDn1eXhyCe+\nmSVZh3u0Xb0waV2j0HqOMdpsk2DOVl16ymjMZUv7ckqVGxo7Qe7JkM42ppWm\nao2l\r\n=Dj96\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGFXQY7etCof/dusQLC4PH8TpyejEyDE0asDf5NBcDjOAiEAuXurZzuCtfE9Cyiv4NcFi9PRNLl6DMq4nF0d9t/PMmw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.20_1604648393588_0.30489636412756416"},"_hasShrinkwrap":false},"3.2.0-beta.21":{"name":"react-query","version":"3.2.0-beta.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"360d38c053d8b97800658113e3ccd6005f0afdd7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.21","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-hj7b7QG8uEEofEu1a6H1/8CdfXYORwuhO7knTlx8lZX8cS7/6fd4oeaEIjEV5EvR8PMYWFPElNM4QqOCPHVGsA==","shasum":"f0c2db09bdfb1b73813a3430ec74c4b2708ffa3c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.21.tgz","fileCount":125,"unpackedSize":715983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpmAgCRA9TVsSAnZWagAAmpgQAJTAVyo3Wp10MdfyH0c/\n4Mt6oZRD/4pEVS2RMvLLGZNPvheQOHu8nvlge/qgfCL0nbaDFEkzGZbgTjaq\n2y9VNzRDiMUORtgoDpB/6EWGL340c59AzwEQBmEOIuShzv2gwgRxK9XVoUUb\np2nwkcotJyeedxHz0oSXVur9vc/z540nebXomjzWqhYKgRPcvOnR3g+t9+xx\na1NsmPGR99FPnQuAoCb4zrproLiTfn3m7ZLMtTGpfiIFiKai0K49GxO8iJqH\npbbW0OpWrxH3SElpja8p978JYNu5Js+4/DA5LmqQ8mQxIQ7eHly2Af4y1uFE\nRWWCVCSCJlB4xK4W+hJwB72DLx4S+jdYQdNvyFOFLaqTlm6SRUWCIrUvEnRD\nV5j4AeeRkvYJLttsSxq4PZvf11QCUx09uWirG4QVGaldg+9B53bwAD4UyKA3\nA+t3E8ChYpViAO7dFivtpkGOBXNrXkzfWNchsW6mCaHvCmrNMIvMtrjFh36h\nNZbX/DUbbALSlh27SAk7ALLixXhw+XUT5ZEUDgb9SMrp/3ZIo3BXSJlRuwJ5\nLyhSk4HWQ0djjWFLTtrwyXPYVpIvHa1KDjnt0SwcRIVTO7tcjDE5XE+betiS\nynd3BbjUsjOXrjmzKZ7dsYU3sOOn2m/7LkA8vT/DC5ZbiA1dorq85bC3FFMS\nmo6t\r\n=w2+U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDiobsaLNiZK3rgEm56cfMzVg6bgQZoL9y+q2f7oZX1lAiEA5J++u2H+kczoQC4dDQ0ew5tGYpWqGJUQxTCveZj+vHI="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.21_1604739104145_0.4900468753622924"},"_hasShrinkwrap":false},"3.2.0-beta.22":{"name":"react-query","version":"3.2.0-beta.22","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"06833bab80dd721550edc28a2fcda32ef8d97adb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.22","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+SwQImY2L2CBt7hbq1/IVh39F1l2Tz+eNcWb+ovCYNvq14C8QhT3RkyRSo/kS119d5+0cpYpJ/dVBxuiz/tLmA==","shasum":"1603f54e5ca7b47d8d15ce8120605a50b3adef01","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.22.tgz","fileCount":125,"unpackedSize":715734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqPkcCRA9TVsSAnZWagAABf0P/3MqqyEcY1C/OoRLGd7S\npRsjlG6eQwIr2KhprEeflNKX8fbahWVyBtIeJFrkBZIP4V1TvEMs072QVquS\nx0E4NaBO4nmZyRVW0q3OgpFZFwoUtdLAAUmWMPu/swv3nQQtJdII+iqAxJno\nOVzswjnSag1juDUZdCcrw6K8MuBHJ/MaGYdBkSYl7xXHVsuD66xvANurfh1t\nu9sJ6m38ZaFBCC3to7KpHQJ0A7jYWt3RMk/Pbl14zpTznyaQWpUDyGkWWqUg\nvpFl81jBqc/bTYf/mmIl4oFabGD7YUiY2xUlQ8t9UIGx6dnT8JYcR6Seyl/2\np2rhsb5gNYjy0AYH+yoC0DNxFnYWKEpQdyILhAicG+/8Xvzx02RfkiuK4lke\nmKwsFkFD3k6KGp564f/9fjlg8eC0EFe1t6MZKsXY44AEpETLMenEEYxpphtd\nFNPqmFniTWrglr4rls2WP9/FRUikKRMZ7gomwLDBs4iX06frg4rRGB4EheoA\nsH67XaESYudZ8W896Ir5jfaoxXT6yeSP37gqHyrWooo9XuATi/yyy2quA3vi\nCIRrDF2ij0b875KAbltTnKijO2fPvHifdUt4pvd5oXyIvgliwi3FXCzP7V+u\nj0fT3B6SG0rnWJT/z1dOvLoHo1SBZTCjeMyD8cvm0lTV+J60h9ROKpO9soQS\nXnjQ\r\n=O8b3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTlFkWkukS4YPRXz5BqN1zqrrj7NGeGbkQZd+BAC1GDgIgOMEKyobDrMVA2JNBcsTrIYxlXNzwVnQ+EJmAV3jyzWk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.22_1604909339681_0.2808680016154639"},"_hasShrinkwrap":false},"3.2.0-beta.23":{"name":"react-query","version":"3.2.0-beta.23","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"74329988e42e752842341f6a115468152ca9fc2b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.23","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-98qwGUgcA/5CsByISNPSzfFmsUofjOE7TNbqqPG9zREjiI+Q0V2Xq3ojdvf01mdLdheNBc7hCJREgM5fBpg+Sg==","shasum":"edba35b12c5ed42a37f287dc2c043729e9e6f3cd","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.23.tgz","fileCount":125,"unpackedSize":716309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrR03CRA9TVsSAnZWagAAfDsP/RMff3j4TQX/wEBuCsLF\nFUI5bo2vtRM4nH9IaeBjFKW2xwfHncwVvG9act8QN6lRQ86ZO3igiCK9waHe\nvkj3ti5RXeAiCqWWZI7BdKqSvmtYya+Te3Rg/37Jw9sL1xlSmDNRZgAw2u9A\n1pb1cuiv224+WxZwAoIBICxXDM+L4GP2n5BiPJObOVI6/8pl4AjEMo4walQg\nLYOeDU2k8dFh/F7LNqTgk/oRHVrX5w1rzzdd0BiyoOqFS8Tjcm62K2ZjHmnb\nZe3w6CtbKGwscUMxuj3zPE7+r4UufgP76AkcKkNKCS6zJ+7K0iVseugB8i2j\nAGAM6KPxpjXi3Hzc6E4WxvYSt3wvg5/05gavabJyS6iW0010qqgUr5ek0hi1\n39hp+ODilLWAja0ztKaOAQ4x+ypJKxhkjV831Nk6TcAH9S4juK36wXrHsOP0\nVoDNr75SIKr9B9QvbnRgXzqrZp6gAgYexAcWrBlWAissSSWNt0cgf8OqWIuj\nabAIyF5E18zMHj6ED/MJf30C+eJfFNAcvxfAUTNBRK2kPSR4ot1AuOiePAa7\nmB7KCuZ+EYDj79DCja4+AqOEqEie3zvJVyOgax0L506H/4bAmiax+lIXVrub\nJ5MPzlXfjPHIlEZ3sGJnb71dTBO4ww/+EQ7zLIfzFmK/s+ubzG6HWd5YB5l5\nYoOp\r\n=L/WZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjr75LTfO0j58xmJtWtRi461rnEieUlSm6GQQb4eUYHgIhAOvnbJbGinu9ZcBj63tH8CMU3t2htQnSnUFExKO2JF22"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.23_1605180726833_0.2983196130457313"},"_hasShrinkwrap":false},"3.2.0-beta.24":{"name":"react-query","version":"3.2.0-beta.24","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"d01f52d1319ed47ff223b8950891adb3d0358e95","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.24","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-l5/kLsxqXSa90/TN76dVEhHxhijippXupoU7JrKh8LlOCIuq6yEIYPUzGbBac/ZFftRyQr4ksuaMTygufsUDdg==","shasum":"a8fbda11de1c6a0f2bcd1c68901301ec464eff4d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.24.tgz","fileCount":125,"unpackedSize":716320,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsPgDCRA9TVsSAnZWagAAn7wP/RB9FiOZnhCCFeU9INsU\nTs51zRwoX8xzUpTUvbRGTct83Cyf5N+DBeyVkX1kOYBpEaqxHlNOoxDKeqF/\nXJUj4unOU+u2Id+d8a52bhfjuzZIg/akf7Fykh3ie4NIVwdisIwy2GyIMzKV\nQNrTfJPGjsDCtQ9RbolSEQPp4ve2oAGBXYXtP2e1xYSZed0UvEJ96qDrfcI/\nK4Fn3R4JIVti5eyAjif4Zc4BxvvVEa5AYDcnGli/CgUM1MlU9kb2kvQfoAFk\nyLJsi4Et9WYNVHP5sPnTqWy+cBMeXwwlxsECXNodBnmHNSwGnoX7aoMRC5n7\nbMvYoruRNKIX8SUUCu7PGxq6RSxBF1aE0qte8z5CvnERBtn3ry8ktoHFohHY\nhwMAL7Dg1UTcN3ds8bLAQYnf5M8UqrGb9TVSU4nAtLuo1U8+SNkico+5AoiJ\nu5y2R/wSjoy2nH0bYeRzpU9nJDzCth2NCx1/RxUVm/58vHOjIwHDsOWAviCX\n8PUmYKJxZwjjC6UNZazr1e2qxsXEiL7jZguEtfO8sPvi+tmPYeE85fcF1Al4\n+w4lM9Khp+bNmkji7Jrpj62OzFE4YGc3MFtqyLJ7j90T6l6QH9dXkWfWxqXC\nUMQG7lgMX1pxwAewHWuLYrTUt+btFUf/UP3zr2YRKuQT1iD4CnHF/kmWisz+\nQWQS\r\n=6Jlm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9Eg/0hIv3jFByvNUoT0k5wSbfsOalZDlDNZwImdQzmAIgUt4nD/eexDgS0Tl25HVWfnjSuNOrflX3a9l6Q2fPyPw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.24_1605433346568_0.7284988806479429"},"_hasShrinkwrap":false},"3.2.0-beta.25":{"name":"react-query","version":"3.2.0-beta.25","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"99951a07f59db2b1faf1745748676711b18236fa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.25","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zwGMRE4fk6CAx95wp7Mp7sh7RPIgemJ1PJIy4mXqdrjsOeYx60lH0FgAIDraQ4U95XXbXKP3kXWA4Ui4wx4yVg==","shasum":"092e28ed057544e8c5163780c867e22785d774a6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.25.tgz","fileCount":125,"unpackedSize":723885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftplzCRA9TVsSAnZWagAAfMUP/3KQYa4K7Fx7xr3q0HG6\nRuvA4tjw43Vo0nAVHRiCqV3FfBoOwSIIFjy+xknqFITBmAyu4nbHrf7ZkKpY\nv/q+zIP1qoKuKj65ao7JePj5ymn/YlCiFer2M+DLXIbt58ot9lnCYWiqFcVP\nClWU9nYVYV+SE5OmGv2S2ew/rSARKtG8UyZYaumucx1RpCiN2jF3ICHRFhk+\nfxG2AmTa4h3DDRqLnZpQfNLtDKrrCHhQ85Uk24xviAhiJSFiwE4F7f6JUvMZ\nW3IDgXr3oLXYAQ+bZHSGkrC9Qx5RpPj0omWYoyGy4IfHySLni1GYSy4hb9am\nh+1tgaU27cV7ITJSd43URMc7n5M7Ciq/lmTrypOIINQx5M5PBEAeiynptVvw\n0urCXYdzMKQtwe2PeGz18UoDFRhPmSTStTL8ORgHeF81l8l0KOsTZE2UjjUC\nptvzFQxhvkrHCXoo7lLo4+s7/XOiyH8538HuoaqprQwZyHlxf/xau2hdyUSJ\niuuX3FV5FBO4oDrzeGAGrNODycixQZ59zjDNcMI/DTdlS+x4dz6b4voK6hWs\ntbAPrCf+XuNTzYWNr8X+K5DiIBpfrUaNOT1rXq5LVEsYkPdq1MU2yTMO2L+A\nLUH7+I2S9K3/VZJ7nYcwIl2qZfir3QNe42DUVS/Y/r254KY07/J1Sc+/MD5X\naOsJ\r\n=cfTf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY6TS6tnFZOixTqD/LfEYKiMb/wb2Q47pfM1FD0BlSjAiApVaunAZg9XGEQNJeFdthM90K5R9MHVi+rU/mkRWHEHA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.25_1605802354605_0.6547631919096379"},"_hasShrinkwrap":false},"2.26.3":{"name":"react-query","version":"2.26.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"7535383eba20fcfb0e476dbf199823d1423cd7e1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.26.3","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-h4bhZioVY3kXfo+GLNg0zDn9XvbZkvK3I5eTzW82zpRwtJvUtxrkhrAyZ5N6A0Z9WPeRyo+384JubT5RkMaxEQ==","shasum":"fb893058523213b17f0033d8184eb5cd6c70d778","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.26.3.tgz","fileCount":103,"unpackedSize":919391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft1/4CRA9TVsSAnZWagAAIWAP/irz2KHbT+WcEa+k0Uvn\nd9l2N3kE/L35L2dOz0FoABR2jHm8YOUtN4XBkkU2ffUYiXHZJAbAzIz1J/fT\nDVYDpZLGeGYq5haRcsXUajyPxh862/3m+V0qVXlt7fKuhjZ7Gwm0J7jJp+Je\nEuPM9XUro9XCQtxm8yi01LB1ydsNmIx9iemWkK6zjAoK4dZpiAuVcrSDGvua\nxRX47X+34esIPJUQpUfEAU9EIfmqkAdglL6v3trhTm843MhfEXThVuUuD3y0\nnQ6zA1si250sAxixNzb8mONXtf9gioQPxfoCJho9vZcw7OX5eWFaBS92KKlO\nfq8cmoLzHMkPeJJ2X6LiXphYS2PhQOx7paIVyuLW514GsFZmr5quJmPzTgy+\nq0s+1QPWB8OwTmj3x6857RbHR/X7BN9Bu95BmNXJMFWJhm5LibEqRnEi5TsO\n6Q14v97fxk7nXEFtWtDCX5mAz3nA6F5KXzdtoE7thiSrUU2pFHnVjaD77h9G\ni2cfpMgfz8eAXrbqeFFhawrKCNwwbp1gf4rjQoM9UU8FU31DwdGS5XPMT8jf\nAvLCMJ6lQVscF/iXoRHv70GvSw/ALSV+rBTvPTsVHrTcrrlO3fzZE+WlCaFn\nMt/QnZ91q4SP8kJkrHL24OIJwZiPAQmAjYgsidX+A9bmwdBm4Kwi+QGDcOyK\nGjzo\r\n=BPau\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoqGWpdbXMjEKlg7rmF3E3fiC4BD4Rf6oC5GfG0JOmjgIhALBPoUaNnhhxNb/L1wMyKqXzqobA1M8ChKvhpUAdH49w"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.26.3_1605853175917_0.659806732055013"},"_hasShrinkwrap":false},"3.2.0-beta.26":{"name":"react-query","version":"3.2.0-beta.26","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"46a7346f0925e27fdb206a5ac825edbfef197575","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.26","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Aj21c7LwaReyFTE6dI9bZ3/ujuK5Krf7tA/hNRrXW5IOa7d2VeNM0XKy5+EJvEY7OAV07Gx3ajp42gJ3Ro3afQ==","shasum":"afbbc0c24ade05b9249176bf59704d5dbb9a1b9c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.26.tgz","fileCount":125,"unpackedSize":723911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft3gwCRA9TVsSAnZWagAAMCEP/3FYiruBEBbNXs6QTnaZ\njL3L2M1/yA/PSZ81CTbMQiz3NPpkTwam/IG1CN8DBreNClW12IrDM0zc7yVb\nQ93U27AeQ/sZN6F8Owz4zmCOgnUu1/vswpID2fTgMrn6A88yh6JyQtfTVLlR\n0pBq7tZ/oSs+JOPiZA355gsOzPU8T47O6Y4ZKwa+dGzeKl062pc1HuNTs9r+\nJga/UsarnkSrOsIgdREbpUTg1NxGoXVBS1/YVcoYIhzhlw0mgglEYGJ9G2uc\ndcyEu0oklZ37y8ldTzHWylwBAiDqVy8UShh/qXXe1UBhTCTfEKmB8N991Wpm\npfaJ+4/WbQusNnnOmmWL5TAeCjYxEJePmysMNU90PDzkUVic3EaQP8VnaQwO\n//l3amms0HPqvcUFUdPEx7yBBCkwDUC4SDc2FpX3PUwq0Kuobe7eeqm129i1\nsPhG2huhX61nIGZfySoZZWhKjOiufqQ4Es5RGfYGopiucSkx6ovnvU2sau7J\n5G180ZRQxn2FJZY0Wxa61Lj6OscfJ+mg3SA5xM8f1kEZV4hHikwc/Ms6/m15\n3cHVFZb8SKFk0mx0vj5PejTgUmJRoe0XDiEZWIPCEvXbE/7SeR6Ffa4eKlVD\nchuc8IHgsnyxZ7poIkQLiGlG3+NPUpXvF7fogacQOQKn9cxLm5lmePk0dgBF\nHJzX\r\n=A8Ah\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2fEC7GOW3RS/Ekki0hWAgOFgDqVIYP1i/mgaH1+vi3QIgVvDQeDDVGddtFld+w5VnYgX6MoocDceXm0QqlxECRes="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.26_1605859375713_0.012256406748047954"},"_hasShrinkwrap":false},"3.2.0-beta.27":{"name":"react-query","version":"3.2.0-beta.27","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"70647f92fe145d3032386372586d23123f245868","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.27","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-C8YzlcAyfPgJb8kgBQQzAfQ32gwiYMpMulczuOdOpztKLgKRscQJJZCOl41ZPRmEDIoqyB2AJgCS55xFWJcovw==","shasum":"ba85dd26f2e3537dc869a93de2a33a9242041e09","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.27.tgz","fileCount":125,"unpackedSize":723908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJft35ICRA9TVsSAnZWagAAZyQP/joM1EUs5AGTd/yt60+u\nVmzBZfHEYmJJakcgiXFeXgZ6Gpev+yhypufQM+R5r+Yzhb5DMf1jFtk8wfYr\neMYmRPu7EOZ1SIovTSZXn4NBQQ9Zc5OW8c2UBPnC4WKPFNxDKp6K3rR7Ul74\nbn1vHoweCcpQa0QdhiA9yLytq6T/h6Ec5xjTqZlUkkxyHcrafkg8CN8BzCwM\nI23Zs2gGZXHYIMVdZ48HTvy/cZnUUkAwG5qhDHOaHJSS0RSMcS/pLh7C8ZaY\nsbnwA7Rg7FlWXIm/UsmObJajSRJbm/8PJTYdE4D1HIpM5FrXo3tJQaXIBJxJ\noElyZdv65/UqfPXynVnl6Yb6FZLbi01na18ECOPL07IsqMYInf5jg6rpSsh5\nO7GIH+5Y+gUA8ndPRM9kcvs2v/RkpqGyWRw/ykkxxktT1EH2w+LejHRZhhM2\nc8arn07DlThyJVfs4QmPBFYYccUMU1fI+cQMQK9p2p9Ru+FeQ3LHBY0EOndQ\nWa1xf+3p0M8/vbiJSpJ39H+aV+lkX9bY89L/kFoFucKTitsWGkMCSWf0qOCf\nftRJq/nIj3iv/cs5YSonUoeQm5Nr4TYmSrP4+zR1texzhvNYWGisoPQDDVnO\ncXbITj7k7mnprwVx8tkqNg9NE0KuxVmX7L8MdufaW5/taQtA0cytqo0jv4VP\nx0zI\r\n=dQm9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDanegrtwueXast39pXuP6+PZdvLMvkl572SiLA/8dw/AiB7C7Psm4YKMP7QaOneH7pPTyPRvgvldP5yAaT4K2S9Hg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.27_1605860936015_0.22725654982602705"},"_hasShrinkwrap":false},"3.2.0-beta.28":{"name":"react-query","version":"3.2.0-beta.28","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"163339f2ae11390f46c8a14eecd8855d0bbb3d5d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.28","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-pH/gfpUI/TotA5rV56Lz0ZQwbWcY8F1/Zd70IBmYgxmmXzKb0TZb90G+OxkWVlMrac3Nq62MqjClsxr5vov3Xg==","shasum":"487d5d1ef9a16a4c38d01200f2ce3a3ce96ec8d0","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.28.tgz","fileCount":125,"unpackedSize":724882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfujcYCRA9TVsSAnZWagAA/ZkP/00l/Q5r7c+E+kUopkFc\nKuagyf7KUhEqkljyQcrNxYN9se/cT32cW2ZIb9RrL7CwJwOiPT2zthUh+fyS\ndPGsI5ssaGaPmoeREyobUDENbxVcyeRDwcDclZ/n/P35gXMvFJMVPkTG0+XZ\nP1FCz6yYFduX3Tg2N6kaxx9DDwVWSmQShPHEbjR4M31zTS4pK74K/W4ZRaHu\nn0JmJW57+uAeIB+tOnqzEoRnTKpf93zNhDL1j5E4rzO+SKbi/kiSBrAiqlCO\nm/LAXuN9MauBgv1TLEthSMSinkxOl/rL5U5eRSbsvqvIrN0PO7/ALJ6M2CHn\n6SYd8wg8oMSZs11OTk/G5gJiJgTnUmJ45Ud8E375L5+bRq933lW/MjcsKsi7\nqtexfgFlRuR5wLbQlIepzAYMZJnOMcFUU/vC76vdopkrufQpDuGZgkx9yxBU\nDynJTRrdOIXTucoQjvojRRHO6kk6wIFZyA163feAc2jWQrP8H21uYcJ20BP3\nx4RYEbGCgDUjKXrOcVa0qhsltQpvsZsDcLohmt3s+dFvbhceCfA7GXtzlqln\niG4YYDRF7EK3+NOyn9ho2ewfqNl0Up+JmC3x1g7qDEcJdHlZPcM185RCZXcc\nTTRQ3tDibqM7KO/R9tUI1q70FVxJujh5I8x9VZgdfTKKcagICfXgRCza/SeY\nNBCF\r\n=hdjw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFjFHZr5MFUr64vWHwY6xuQoLMFgxI2GGkaCUvK3Cf7GAiEAmZgjGsbGNhiymmq+bvyyYnaM5j3d7pUXzH36Mld7cuk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.28_1606039319532_0.15478153159142294"},"_hasShrinkwrap":false},"3.2.0-beta.29":{"name":"react-query","version":"3.2.0-beta.29","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"9d66f43d0dc89213112d5aa90076037a9fff6933","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.29","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-aJUOtSqBZXjl89IBpc0liMzMBpWm3RtjKeyBGXvr8E1GKQX0jly5PT9mY3NxJtHAYrPUizj1is0XiltaoZqiWA==","shasum":"b013ab8300d0c9c23c4f7cd30b3ec6e5b9283dc2","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.29.tgz","fileCount":125,"unpackedSize":726147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfukONCRA9TVsSAnZWagAAX+wQAJUTjrzLiDHYkcBELxWs\ni6X1cfuCT2u+FzkMQCJ4Tg18//rhMtBzA9XrgSdvDFpLSkOJqXwpRtVW4SAG\nwokd+6a6f6qr0RMoR9RQ0p8UhGH4soprhGsfMhS7E32CWNQ7+mg99G8pTyOp\n61MHaKop0xd8pib0o2nI61YJjyGe+7ijmy0Zm1DnS62tGARKLet4qdGksAsT\nkH/j/LZeYAataAikcy7yWlxDCWKvkTrb1An6Tqt89/vuxAL2iORZnaCAz5Xl\nlFcm0CIXOAEXt6GjgdhF9gQ6JHe26tTxWkTROKGqEsvqWyRByPtK3Q4UNenp\nW7jAqX60Dk4fgHk76sNtvDeFrpCNr4IHHFrITeQidgoctZPUhA6IP98usKmR\n35IQX7oD3Qf7PEn9EnepRw1WoU/exVKSliqQ6jctHO+7tTpemhZi60/tcuMR\ngx5qSEs95soZroU5oTwr5EMjAsrj+2cAK8f4LaPwkheZRzxserOSXrpDH2hv\nDOyv1sbyBMrCNmuEmNYKJjO28oycCAeFfUB0sPnryZCQWXoCQ5yZdiNdZL3q\nnzExQuQFA4uHomrfEdxtThL4F/MrLvH4/mid4w0cda9a5VPlm0Hz2fVWD943\nPu/Zm/mDXTj0l4HQkcdDT/M7I/C3cZp1zQ6BvzC44OKMRjL+xbloX6mRpR6X\nF7Ld\r\n=jOAa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF02YIuHy9tkwDa9lqT3I3Pn3o46KALAtq6cC2sVztYcAiEA4nQWgvYyH7cx8oVhi09daubVIycd38NdU95pGX95Jqo="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.29_1606042508972_0.6388018393011361"},"_hasShrinkwrap":false},"3.2.0-beta.30":{"name":"react-query","version":"3.2.0-beta.30","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"05b2c2db60cb8777c32abcf803a875f9148c5662","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.30","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-OaKvcXUz8nwxsgs4AYjwC0h4Z9Ku4K124HAiqTBLPN6/Vv/p6L//JdGZa+fz618jE2lnc1HsR2RRpkmO2L1KzA==","shasum":"b5be7790e00911a2126c1dadc7e07dbfe768bd13","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.30.tgz","fileCount":125,"unpackedSize":726647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx25JCRA9TVsSAnZWagAAi1EP/3b4WZvyG9KLVEhWF5EU\nRaCA9opemCyY7mxo/fvcFX0xP9UBLvOofRLduQhDjBA09kXELKJmHmQ5kwMh\ndb85XjI9vxsaIDYMJp/gDS1iwtNH4g+fVMbdmVidPHGIegOAT4YAxZGsc3hD\nAkrT5e8z4X6PfRnQRoeBS7TZzD3mg1p5DiYS70RcbNQd08q2oF5qTRHdTaql\nTQK0wOaLsoRSrGhQPV0hyMdOvHzk2fag+fdfTEHabpt2ZJvW3mDpnaW2L+vf\nQh+yi+jvwHFaekNW7CMbf6V13t754JZ/IIpXW2l59MlYqxcBDGIZt7nuoKGF\nTzUICzITPobIUlWoez26bnEHTKP6t+5wEd0N0mpnlx1llh7sUJvMnzxzVaFR\nCZhAL9Q5sE4r+FQxaLYHP26k3njLlnQB6jpUY0YaoT2/V6YWTwuqk4yeKAXS\nBAzGyEPDHO/917+P4c2xBgNSYMRTnVyIQEbniiscH+q2bOvK/EZtJrYSQyOd\nelUBirN4IgZSDEz8PsHWLUbqdSMqIsNvQVNxICn8JwZfZoSt6r5gDNZehWjR\ny5TCnlp5hVvvaMVJz3rbdgKF7tBYQFEe5bgMYmqKrmJtk6Qr3OS0Hj59bqkm\nCtCkbkPYfCGkvAszuhEHZzDLqaSXWi7dbtd7VUCMq8ljtZIWfw3JB08CxQiU\ngkLA\r\n=74/c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkKcGqit85HtCt6FU/fAptvDblIaU66skZSsy4FTF8ZgIgbEyNmLz9XiFb8FfeD006ueDEE+UG+x7/arKKyUOu/yk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.30_1606905416447_0.4392493275578415"},"_hasShrinkwrap":false},"3.2.0-beta.31":{"name":"react-query","version":"3.2.0-beta.31","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"f07ece1f19fed1d06f22e13277c64dde3947c1ed","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.31","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-z4kf1zArYYfE9JUTDTHzjvfQKpRU5RyvvRDznOAj3JVV4yWi1Qv26zd8Xgbd8Hi7kzjr4dY4FD+gIZrWNIy2pw==","shasum":"29d6827a2fe837de13303c24df35bd67dc38c5a8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.31.tgz","fileCount":125,"unpackedSize":729303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzRJ9CRA9TVsSAnZWagAAcioP/jbIwndkI3vwvMhtZmPO\nb1Ql8ilKWcftD29mOUptADlNOIqqbqis09ffl4l8tXidDJ/302UA9NZmUTUC\nKvInHrAGx+ZudYbFFf2pJ6wsl31AUyeeoNrDt1KTGpT5NSPBZXfyyEq4Fazw\nUDvS1SuFPNnEWPjgmOdDotB/b2Xp2xtE5m3GkCdq/qRv5nycxt9dYJnGfRdN\nCFpEniTPsLAk1fJXGPXdNZhU6x4NGR3f1tuTXCqyjNXVQMk5/GizkOt8SL2C\nocuwYektg16Xocwv+EzcjMzfpCrB9FIxrxYLxqef/nKXmWpbIGrcSHaOB5em\ngxHIcbv9AmN+ZEvaMk8vGSmffG0i5OL7FVlPtx0gxVafZhH/DnizV4RX1DWC\n0LgfcupofcrDj/CrGhClwDY6u0Yqbt5wkvwF/v2J5E+GgUXJtW+H+uc3/EhF\niIij6vLe8DWJJdQCr/bWFb2UzsxaGX4w8A3Pqwmo+iz+v84/ulrvNFyjBuP3\nsou4roXtuOwod0LFucruIADm3LOaXLTR77/D3WYsVuNeLN6l0xCxe5Yf+Atp\ng9WxeSYtOJTWsz8mTtQEOsTWKmAky16IkMYxhSKeyOkb8qVaN3KrVMxsPQEE\no1GTIcisiq6hS6OOPfgGlCNKOahBptRwoW0VA26Ly2euu/No9KUybdU3HgKr\ndyXS\r\n=s0ZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKY00sgyrdt5mndDO8ARGfr/eSF6SJDez/PfDryFzIQAIgUOLWqguE975DtzeJan6tVOG1yTZwq9/4DDVgjWC7588="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.31_1607275132757_0.7207234288470199"},"_hasShrinkwrap":false},"2.26.4":{"name":"react-query","version":"2.26.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/*.test.tsx ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json stats-hydration.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r && replace 'export type' 'export' ./types -r","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master","beta"]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^3.6.1","@typescript-eslint/parser":"^3.6.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^3.9.5"},"gitHead":"6e2e37ea5fe180a6d5ee3dedf76bd72160406b2a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@2.26.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sXGG0gh1ah11AcfptYOCRpGDoYMnssq6riQUpQaLSM2EOodVkexp3zNLk1MFDgfRGuXQst40Tnu17oNwni66aA==","shasum":"18239b4c0b61d0b744f0d4a91f566b294fa9f752","tarball":"https://registry.npmjs.org/react-query/-/react-query-2.26.4.tgz","fileCount":103,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfza0pCRA9TVsSAnZWagAATAIQAJ/TvtWTxNvQoFIBUoSV\np1erOq6mYmpIJ/MKlcho81B5dvB3dnylSUT4H4Z9DMK50mKlq4uWqEz641y9\nmaSklZzWf//IvFFmYEnx5P5wVnBxwXA6B3/Ys326+9TKpK3kRTR8CnPD2xS8\nLLocPk5z6rCDTZsmxXAkQwml+Kc9wmB4EYVx9n+a1eld8KDp5JPpXuiPOhAn\n4+pOoa6luzqM5xF723OYqcUuXQorMXDrVYeUySutDDjvzRBC3qoH4i6fPpD4\nJzr5BQlTWQuBwhqEbKl2LF5O5vBz5JccsxG8kK6/Of3yMxqibs94/ih+qWVV\nQZd7MXBkiXu6o/fHLTVFDHY/e//AuxQKTjDhL95vvk7e9JGkxl9pSbHoXcMC\nTnn53GXCYmv2X1hy0fb/cFqPUeEYGlavnuPqHyN8t4ll412nFArAeOnYLwTL\nndm35MQWZ3Iphs896sWYOBKNJ2g8PwrehQkp+mRZDjpLqJzTSDTGLR8d2ne/\nOde9gAI8PrF6JKl4Jf5dyq2JjNWpHydKJHnKROkb/xwb8vvtfT7qgzTqTJg3\nK3LBKEoxlQX17fDPwp2scrEt0jMnEPvevSEZ+dUReNyo8oSEMOjnwCmZ19BC\n5hb6FOWE9ndvxruhUM4Di27Auy0jeU5/MlGxbHLefNBOQ0WhEx3W0SBpqNrI\nFWVV\r\n=Ifvk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMFJyF8XeLfVQWlq2BUjg9ikNuYmq9knYx4890DHD/LAiAp8xJvyxbIegrYJRCRbVBcclHCxT8GBpVgeHrUGm8WOg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_2.26.4_1607314728536_0.9957166827159458"},"_hasShrinkwrap":false},"3.2.0-beta.32":{"name":"react-query","version":"3.2.0-beta.32","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"4d01e1fd543d304d2b07defcd4cda55e089db88b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.32","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KCN7I26p+HbOlkmqyH5aUDwWWc+m8jsk/RtEgEDqqotJhfps1OFWskuYoj7z7LyR14uWjub/DZkSzbj3ScrxNw==","shasum":"69cedfc0982511bc0352de2b1740b68ecbdae61d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.32.tgz","fileCount":125,"unpackedSize":729350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzcvLCRA9TVsSAnZWagAAdjMP/28amPWG1vkPcnKhWaPF\nqITf9MryLV7/p9q2l1RRa9RKilfOuieuQqoNRQiQLkytrJwL0q1xqTWiSaXh\nn1jDh2OXsDH8RO16OnaNT1RVgmI6Ea0AMHb/bS09mReOFW2iwZuIV/u0ipvq\nY5ishLzd7x8f0FlC+9bBjgz3BAHc+qe5R3sOD72kb3hBhQWG4P7g3tkO7MMA\nLr8bWGym+dnMaQxFwH/H8p00JXwuUdBgo9XPNx8Ab3/YrGucXpARE4eegpkm\np8sHi63h7eCilEfHMz5CoQZFiN5YU9L/gaPST7cuD8wyh++tFTKOsPehaObA\nWVvDlP2wNzofYv2Fa7DAJqgZVFXhbxovbT7dAFs5D3rw+AXbyiPm3yRdEmGu\nQ59GRnEuihe+C+tkEEB0oPz0ymionEeJpuV4vBM8VqoMk1WC9GftT9dIT3yw\n+wJ+vri8Scw6xW9FDKjDQi/RJwqmz2ebu3IzKHLWPxz40A4QnSeQKX+Eduit\nZhmUqd7s8P7x7e8P46J9H2lpS+mgN6iY0Ijj5MOyI/MUD4Ut3oUSNuN9nwvY\n6jVjYZVv3BgJwp59FAs3lch6rI9RbM4Sgfx4ujVCeJd7FmmRqE8wU6ebwo0V\nulACl0eAykYwYW/9svKr5fyCPeVqbs93Bh6MCslYEMayw1IBARnmQIzJmMGt\nHTkI\r\n=XXb/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8WjNPqus38L65sPFUQ4JXaXWVnmvK8DKg+A7rkc0i5AiB8TWSH2K7n6FCoHvnDqJL7m3J7ZOY9QmShTHEWnBWsyA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.32_1607322570811_0.37535903097449075"},"_hasShrinkwrap":false},"3.2.0-beta.33":{"name":"react-query","version":"3.2.0-beta.33","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"2aff467bffe22474216d3dbab8b010661fd53a7b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.33","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KB3cZnG817Bl0oItVRkVRdoy9+xWYSKBXzmvXm8vaLH42EvjCj9/o5NJzULZDgEitlcw7eNwNVjjuWstoSBVnA==","shasum":"7c37aac83afde446c76ae225dd3604543aabca13","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.33.tgz","fileCount":125,"unpackedSize":729556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0AJLCRA9TVsSAnZWagAAXI8P/3zJZmFH4Vz+FPJB6fdn\nEeHfFV2o4EOmGIjxV76dUMFqjy2RJGWmyROJXFO4reFiKw0QRBLQIaOQHD4j\nZgOhjfWHcCpzxsHVIcr3zzensX/McG40rIXjh15IeMLWiaNBv17lMPf8G3mh\nvN42MC+vvmIDI7xjIVhtxPgr/8qoW6UPTTQ36qvh1KQ0+bShG0yHg1r7XaHS\nky1VyM/E0NIJxNzD4exQ08uBxTceYmV/N4QDbNqP8gSG3j1/3QemzENMA0nE\nkueJmlwfNYxfK/C70bscyIN0a6Jf7z6UjUh/Y54Jcw/1YtwjWrI1rUnEEr+a\nsU/iQT0mZ3T6Qy78DvlbTscuY7NdUdNzT/4av2MWnwJ/2PHmX+mYvybClPss\ncApHQ3y0CS6cz2qmXaN4BFTwR4m2sO40HAEAIGJ3wIQGAENLkpy5RQp6Slws\nX0PXCPdUI4CWOx8I89yBtBUHwJxbY2z/2GJnRcSLPYLQZnE+SNYPvdfUiLss\nQQq1WMVtCb/07h+uqkdai9DG6iFMqmELGPxpVxk7jz8bpt1BuwySB4CG2gHN\nuIoKQVpxe7I+sa29+dC/77UgSgP2igxxeeDgu+zr7zGhi8nXlnB0o49VfhP2\nWdJLtspzKgS4Q4qrZuFfvOBYNwB0j6zqfhMwfSll43P4r7cKKPOgabd/E5S2\nDt4/\r\n=uWBX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4fg7Ap3YI1Nmx0Oc8AH4QzJWFxU6uiQwviHS4tXXqdAiEAwzM2OFqWMJElSPDT2jZJA9t22kBDanUjmq9IBVw92fU="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.33_1607467594359_0.12803659406720835"},"_hasShrinkwrap":false},"3.2.0-beta.34":{"name":"react-query","version":"3.2.0-beta.34","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools (React Query Devtools)](https://github.com/tannerlinsley/react-query-devtools)\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"e8a22e914101fb35b48f6b335ba73644417583dd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.34","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-laTXRYqBprKgXKdT+RLcAzK3W4RxHY0ZW9A87zDp/R7CyYFvHakvXXHO1qW+7CgK/yqLbcTGfEWVl+qLWQ4uMw==","shasum":"cee5b8cf648813f316641eb133a0d5203e4644a7","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.34.tgz","fileCount":125,"unpackedSize":733835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0DNZCRA9TVsSAnZWagAAuV8P/jT2KLNDkqw8RLZ8sJSf\ncyvg9NbaUEmq8zx3/R5MDpsZZLo6Nr2H0aY8ywJM/hQt6p3qSPeTcs06aQFi\nbjnO63geoNF5GdIq/0O5gSEYn7Dgb78Epu6d2odzy1G0ovtD4LcTr+k/uprr\n86MR6PwsVk0c9PH2P6E5VwEzRtuenuf55TnNnnxLP782+jIutrKBIH3gydbG\nusQ2pjp4TsxBDTWEY0j9f5zt5Y4NYHIezc0DsKf+gf2JenB65wmfshnrHvMr\nwcOdZp8ucub2bBudYQaGz+72L80zYi4v4Fd9yHs2NfkkOB4BPRXz7vWehWma\n4blmCRChgx9yvwlPTwl0vu3RWayHkH2pNJulys7odYJE01c4LoLYlrNGy5lq\nvtAIO5cUWDXOK2lOFLXl9Sx6sRvyR/OUjvUIEQVf9nl4HmcSzSn5HMf1Plno\nKGXHS8QsB8Klrdh78Q3vaReEiRzZwb63WPyUFZ4Xd7UAsFEex+vIr+0nFWL1\nlvLkUPIKqsfIQsMOGQYFjEgYflnpUshLiTo6zrQk/k1r0MPU+0oTNpd3wKNO\nJhEY7gG1+ARzLaWAYNY6ccTu/xgGsJl2Zwk2/EXh7yWezs+GfatOKHUSpnDz\n9GLtdlOBzlhilHNU0/hEq0DQ5Jjga5iuVW7YEHzna13e7oRUZCAdbLt18l/d\nNmrV\r\n=Ifq4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7DtqF3rppoxsYWNhXAS/t4zy4LUiBOht+Iq4XE59VuQIhAIR6b4FDMrc9pzE00OU5E5yoUjeHX9T8iPZ8MqHfUQDK"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.34_1607480153006_0.12300784195207992"},"_hasShrinkwrap":false},"3.2.0-beta.35":{"name":"react-query","version":"3.2.0-beta.35","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"05b398f829cd2d7aedb3a70ae4ab715f88ee7c39","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.35","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9zl99rnv5Y0qrpNtXMKTcJfKTeDA9rJdML35bMWeR7oWOKMfYv4wsLbt1I0waAezZYrKqcmDGebscj5+CZGFxw==","shasum":"a5b159b3806ce5ab20b95d8f96981c15a679a694","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.35.tgz","fileCount":173,"unpackedSize":1609130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0cWWCRA9TVsSAnZWagAAswsQAIxpNEqQxcfc81zC7QtD\n2IlImwsikrfE/iLTkVFBBb2NpmnqaHkscZNiygxwVSWarpEkYzE1z76p9bdY\n5aEo2HYxPhnFDyIQPhzlp44er8nWodmtWhPGSTyLq/fgo7Ui1tMYsi0/Y+8L\nKQm3JgOf6DLJO0EtDZKPI5vGYqhn7fCcbofgzYs1RVHr/mV5oKedLYurR63w\n4U5NHE1hOsCCd+u19Euo55k0fLDjj7TEOdaCkb/11XSX26GOss3Bs81ASVte\nwMURhHIAVZBdI/2KDO0g60g5A3YN5Y/L2kqHP86ozflHft2/IB484C+wir/l\nBY3vkyMakc7fTaXQAgQDxzaodoFnN5bi8L0naUHsyGhIfXzNiKhb+92Vu9xg\nhC7Qx/wBv5Hnm/dxcR/Yd7tSmLx2PJHMqo5XejVUaumbeS5X6QQDs6Okh0wF\nMZXu3f8fU0tSwnjOk6zzJPqIahCSE5VSwX2s27PFZhJYA0GzJl9fCmfd5sHC\nQOkOTXeEd+N7OxFV1MsHU8fwoQQI25ilrqUwhwhrbOZHQ33UCSvT1xgFsy7I\n8USr1E8/yI4oRna3UNGBfKOonh6XOsanu8scGNvYfl4trX9diRFBC2g8q4S2\nwPYFEdJDG09pe1OqyoZd9XjfuKeoV6/vebyYgklpjPzL3Pk2cyz3yxxPx4Rh\nEZrC\r\n=mJyO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbLrFpFvWG4pnT9huiqsiR84dk3AZ/ahTlDdr1abjBAAIgRt9Y5B8e4gxUAG9d5b5e7694JFDTi19avpRQ8Vrqcek="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.35_1607583126336_0.3244637070511316"},"_hasShrinkwrap":false},"3.2.0-beta.36":{"name":"react-query","version":"3.2.0-beta.36","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"cc99426d7896c9fe609c56df7d3ed2f063c1d8e7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.36","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sfjVY7TI0tjvS+BNb5fIZNIYMrFFV2PavBIs4gBocarmBZuCDQZ8WvsgExQD3WhJogISWki79vzDP/uio8Ug2w==","shasum":"5f7b7cea4e0699c72263035a96210c5d81372dfe","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.36.tgz","fileCount":173,"unpackedSize":1609873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0qM2CRA9TVsSAnZWagAA8NAP/0YptAuzv/ViqtxS1Ta2\nW0bhB1gk+7rfRyj2x6W+LVbn4af8KX62nlEd2kqZ4dsD6Ztya06NqlYWbV1m\nyHY/HpGX9j08+5X5FZY1ISo1c7q/fO6viDedfk4oxrYVbMlp3qjYvNrnK/cC\nqBjjDU1+f25xD2pgg7btRt6ZYkjt7/v89UsPW46HZ/DbAYvkmbKkB5RMGHk8\nlIrJ5jqz0Fp9iLnN3g/HFrUuQBkWqaByfJ4cERD9X+2OHrrCcAub+4A7tlG+\nFXgeVKUPTbhGkYJrpfJNBwIXNwFGsKMSNgaB2Xad/vkkGWEOirTKBWkJTVh+\n32OHLURlMFi/txzbKcXxEa0yuQMUfw0EfT85OhPCoxNr26+genKqECcI5STp\ntK+05dvDjI2dOcgq0rZfRK5rTsVAgJlKVag453UZ5NNgU+DGMxIkjIcVNQbi\nAN5/JYvYpMZCJxJ+tpvVWeRoJX/Fx9ylCJw5qkUdIU4I0F/IKnV2cFeHLeV/\nwIBoHtd1eCg5+OKjOGtchK12cdKNMLJ5dKIJcOio25ntTWH5yeR8ib4TLRcu\nQCTQSTWSLHNvZMwyUom3TJbehllvBpSsUDsR5pJMoF+8Kk36vtiTn66ziDJs\nBr/AAqjM/KL0j5eSv8dp4z9ECH4IUCvuZXAEYQXbC8z0uSzsa2xfwY0aqsgz\nfqSz\r\n=4bz+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXjzxTkdAQhbuGfiysKdeWuKGqQyrrydBreWm2u+Qu0AiBvzJaqJQpQtumZjmZc2ftdD0Fmf0CUPoHwsBpiouNNcA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.36_1607639861563_0.0037513896709293615"},"_hasShrinkwrap":false},"3.2.0-beta.37":{"name":"react-query","version":"3.2.0-beta.37","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"7f172a0fb7d94da72d35ba3553127ce035b2a687","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.37","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-EofvG7xf+O7ye+qLBXEd1uN0TAn8NyVBBOPxLpIob0M9nD5hiKaDRfcbofrNI2z/wGAUdShnDdP6RLCVWV3s1Q==","shasum":"b1ac5ccf7808dabfce0c8d25c00ae06750a0dc5a","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.37.tgz","fileCount":173,"unpackedSize":1616388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1HqbCRA9TVsSAnZWagAAChMQAJ5FoZMLew99T+8d9+aa\nOXgmUK1W2lYpZC5IBcNrrN8DhQ5jhtwIWOwgxJY9ncqPZmMM/fXhIvYOyrUz\nfffnLg6/8QXWupfNN3/Fx/Ip88P7Nn9KjRugiz7ZQ51XV/SKzqSP3goCpZCq\nga+Dm/nNpR5fyO3izKeFKpO6Qu9HIBWOoAF1XEHdCa4+Dx9GwAZnHPTghZkl\nL6N6RV0N8KLRrvwlM81l3Qiw5q/jI8wK80vDdWq6yLzeG/hHK7PdU9/SUXc2\nwpexkkESOJ2QpMT164ngrgqqFFvLBml9t/GdrwZ0gKxQo6GtZvidsvgfAmLJ\nEKuIv3JpJfTig+WOctsP9LlQOCwldeE15k6V//z1hkJBMVhkc7PG2XpOXxvv\nBnoOu7KVSOG+scbmoo3uc/hZo/+9gUwtjUMjbQ5woYWre/5K31IAtfrmVxjB\nRzEwhGQjWP3MTpwOOKpm7PxTH2iaabS/AO+62jxFBQqwCyJAHmjJhp8cPrSn\niEXCXaRlvAD6j1hBHuhhXX0iAjqIBikhsOXzo5nFh3X/XmxCQT8asIgqiBR4\nTJlqMBgwvtHgRrih9f/+lh5/5OpFtGRla3u+WzFd91EE95nnQRF32cxenGrr\naQud3RlIcWPKEczZIHKTeB9qBg1So4cfD3L2B7f9/2HCXTEToQFVFQuBA7GB\nKO47\r\n=mKw9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZGaCB9zk7F6woXQw6+t001eDKAEVe2HmbsVwY35RYcAiEA7Jpm7KQUPlsgrrbSc3W/P2Spc6YGbN3ZPfKfPwvbb1c="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.37_1607760539110_0.7093887586209231"},"_hasShrinkwrap":false},"3.2.0-beta.38":{"name":"react-query","version":"3.2.0-beta.38","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"9883c41ad5f32ba05fb8106e9de3733779222b20","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.38","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KGWocC/dbLiNtBncSmmBXRj4vsxGsT0rHlYXdr5G4cGKtTwNXuSU3MWMySiqyRULxIjy8GpfqYybTo2Odk86qw==","shasum":"a19fd8565c1c17a6e0aa2671cb0d4f53e9f3ae27","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.38.tgz","fileCount":173,"unpackedSize":1619141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1JnJCRA9TVsSAnZWagAAzEkP/17KUcrjh/97y2R87iLP\nrNQe+FKLasdxVvgCdbPOQeIEkT6PILXsMspstPSOs7kLhY78NXeRiz3RSSX6\nV6bfbUCfFSVeYiYf0lszbUg0CqazQGwMAyop2rZtvab8kBnD0nS30V8gdVBx\n2g6/8DzDsXCcAb0t5+x6/0sG5mgG3gIo6+d+NIJvC39MknFuQIfgzY6yaBGc\njuYuyUmEn2CVBPo5ie6PqVrCxDnPiaDTeguOx5mf1nQgDuvkXg90KBC8LMJV\nTC0AESiMwrqIofPP8nBrA7y/pmX3ILkzxol8zxxmEbVdPUqhaj5uLLDHdXEd\nzYO/xSQzonKmunOAftEEgwkTjyAXOlqcxBlRl/hFyF8ngzQ2XY5ASnD0BJVs\nP5+d5I8cTo7TW1aMhbVTF9MVClpgOkAjDCh414PuEjwcOKt+W1ZOOn2QosQX\nzyL6uMoPtpbkuOGF8axQaY17PjNDw2T7wa+17ArCYCRmEf754fuO71HWBKV7\nWG7kSgDxxh/xjJJNysmK2fiOq8m8GnZNzycXM27Imd+J6g9fTrdllmCZFWOf\nvCwTN2bGUM+5o00vHXzwVLVidJ1OTlQixEqgW3OLWAWfM7u3K+yRL3zCy+3I\nXwjgj3eVZRJnxlWnmsSKjdvInTlmHA+Q0bmdvhZZkRT3rrMoNdcoBDoL5gu3\nWIEl\r\n=sJOe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+jSIuPkwFxtZTDveONy55Tc+mEvc/GPU2y+tjNkOkogIhAM/WW5qK3YxGBdgv/TKGOr8JmUfX7ACaWa2N8a8ItZfk"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.38_1607768521035_0.8218407305494488"},"_hasShrinkwrap":false},"3.2.0-beta.39":{"name":"react-query","version":"3.2.0-beta.39","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- [Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-enable -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 2 -->\n","readmeFilename":"README.md","gitHead":"df530d6b87827b8609d568dd040e921de8e22a5a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.2.0-beta.39","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2F6t5hy+/hiaFMNcByz5qxaDCNzFdFHDfm+qK5FEz/bfmq2oOAWWBjSA7uIQGlPu7QpS8VzwIRa9DRY4NknaAA==","shasum":"2953b6bdd88e1af27072697aede030b3b2faf522","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0-beta.39.tgz","fileCount":173,"unpackedSize":1622094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1l+rCRA9TVsSAnZWagAA6j0P/jlSL7Sblu0Eyd56OZ5O\n9866Bt4j4oJHpW4waRg+QpPRc0vLiQg0BY2moY9fJeKVozPhYSbpUhyTv4ax\nERl1fw21vc2AiPT01TNgg6ps320xvvsnAM2RM/jtEqaukxtLgzRf3HS9AfGR\ntbN+HM1aluXGWc77A+fSBhSXOhhDcqc6iKtUk6EHOigWhGt9+bg78REeEisL\nKvFiOolBmyc7Q/rhE8KxjdDOHLbsS+IxniDr7gzWYHWcwYibbQl+mA7Aez5P\nLq+uHXRbadOyFaAOJudT7XvPCxQsU/fxtVyqNX7qtYgEkchlZ7FLTS41C5xH\ntiBYB+cOq5Xyx19c+rRafEVPKL/alp1+dcSC0pof42Z73h2I2qR+qAoeEmEU\nvpUuVACpwMwuaR0WlkljJRt8ZbqSMrBbxENAKpI54sA2A3xUZShNlNApgjle\nFmhQfxiwSzAKGlXW9F/7X7m89zZmda2HvdTP0hX0epwciPD2omAyC4M2ViHt\nkjtMX9KQlljX50OiBFu20EamyJPoZfJu4JwpKh6FAe3fmWABTQg47F1cQSXP\nSSwIZDs06LND1X5GENuhBjWrPHddMUYVwD+gE0PrcsHAIgvAlh5rRx9S3gd/\nrhnJxYA0fNJAVqAc1uCApaaHPvFd/m44+fysVsPvaeEMpig/XedgDFTEoRjv\nlBjI\r\n=f8Yr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGlvVhuSh7FbYZrMFTKXcP4JR23cix+1C1MrOiLE3SqsAiEAj54pHoXiK6+k0iCEj8Nieqp/g1SJQDYRg2UJCOLJvFM="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0-beta.39_1607884714895_0.008081054707739233"},"_hasShrinkwrap":false},"3.2.0":{"name":"react-query","version":"3.2.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"release":{"branches":["1.x","master",{"name":"beta","prerelease":true}]},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"licenseText":"MIT License\n\nCopyright (c) 2019 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-query@3.2.0","dist":{"shasum":"c13264941249867c5a5640ec0be8343a55a13158","integrity":"sha512-P1uErndQIOIhrCLrsw7G3pRPe/S1qL0almPZhYjh/ggRNHwiu8ZRrPh2yTnD8zqDYMvdk+ARJ6VtjukjgX/UZg==","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.2.0.tgz","fileCount":198,"unpackedSize":1622086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1tF9CRA9TVsSAnZWagAAs8cQAIA+bOl6HTS/KZfl5ZKZ\n1DY1o3yIq8W+hA9/anabEHuCH+WCeZnMsUCA5WFwm4cxcdNSHAjKjVvWPZG/\nBcxh8jrdSi8AoG8wqF5iktjZ+KuMrJjaL7m2+W3nmlgDJFwFkUnIhwyJwnF/\nuQEzXZcJL9M+yDE80eFmoBff4H2W83PDMSEzjFF/kVjYwC0PgtLAhRuYKfmL\nTd/TD0GOHd76M/II26v1N1AFgA/aPVkro0o/fhrD1YT8yWJbA5k8wKuev2m0\npDTbDDU3ke0bZvI7VuZx95R7RT7z3HHKkJaiPCVjFbHHwLGIAmytx3uOabem\njxYkfXKoDtpWhTxSn/sOAeo6OfQcpchzGKo5ILyBLlb6k8nqMpogrdShJZoX\nIKmlYcyn8tS8uwAcqL0ftwKjwnEZXljAUaXeWdWu07o93wb8sV1FxYRX3Atm\n38FN+11Iaxfzp4MHAZCE3R9QQNqXnJf22LtCxGu4yejjEzuMNFkh9gofR57S\n0Zn2O71k2mZWvpl2Gp0buNYQG8PcRy07w7Ym5JaSGD0PDl2nk3PWm25P80fq\ngKqpp7a76SO+y/TeEvcv7CDBGpKXTbhH/hZYGGYWfIXpmIZHwtjuR7dNheA7\nN5q+geCg58rXVmf2MMj4Xs8LxPZMkWgkjl//RPoFGQkfKArOY4uGKeV+BJx4\ndBCk\r\n=md2o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXWx+LV+D2EpJ9Og7IxGqU5COVHqkvZDuJV0JeTeZ8GQIgN2RjNw4hFi12dMQe0BPbY6Qy2etx7rzUMOtzlehW6ms="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.2.0_1607913852810_0.027973934794490285"},"_hasShrinkwrap":false},"3.3.0":{"name":"react-query","version":"3.3.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"2e189a5096ce337c2fd0471cd5cad723050f8f6f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-vuYoAs8qFjROk6BDR7TZKR4DJwF0ZuA09xA+cCgBokRtd9zTfZ6ql0Zqbr0POgVJofQFuf7IfrcP4j5G/kujwQ==","shasum":"a52ea140134295531b6f04cd52975e4e49244423","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.0.tgz","fileCount":175,"unpackedSize":1639615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2hq4CRA9TVsSAnZWagAAJzcQAJbHgvxtA5xB4rZlCDmL\nwiMlTJrH586lL+U3W3v6H8PVh71w4Eps6iF7A5wozzllBPePyLMl5oJh9eju\nLC8B+K57kEvC2aLkZB6IULW+iQZumOCJEFuBgKIKThxMU2O50dhQgII0dqqK\nEkMbcvA/QQ9z1tlPqsP4TwKKBaqi4wenGBiZuA4mXpoNkVlIgbfF5fIlAmI7\nctE406VVu6eQQMsOC2lMOWDYr3FfpMd8uW7vNObqNi5wFFHEDK904hlNgtiE\nCyLMYIVl7OJ44emaCnYRVXKFZamauHJPaDtnYSc3LhqanmWz2TfsgIwQEzE3\n0TQsSxUGCR7MS3wMjyza8kb0UUlly0fIS/4jJ4UF1amkLVb61EBMzG1wAIBB\naZpLugYhaBpmt+DK4lOU8OwMOeLnsqaHT1HgKW2Hcn3NE3uquQr2H1/D3cot\nhLa5nagP3poMY59w/4eFNlMeEF5cdTyNZ6sQdl7ODvo9ojl+5Gvc6jVW5Zcd\nt5dPnli3TU+8gu0b+iwKWK/wpLnCzkGYxQhy3tutJUOLSwPyw29CcpGyJVjE\n/erLafitg+aLMkwk9fUB/UZn4PXo1iiJQZ9Y66/fc8Zte3StvBTYHFs6xWhV\ncTd33G6gcixhyKSHVotgTpXV72lXeefRckwILnjqpp4fMakcy61Cr8oht7J1\n0uRH\r\n=ZoaS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICS/QMbfWxZM+ea+TFuz2uQP2T9xa5dgnF+5Z3RJn6FMAiB4vXfO75Vt/F7o969KjrNYLalYYvdRtdCIC9kRpvIErQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.0_1608129207804_0.7786647765458661"},"_hasShrinkwrap":false},"3.3.1":{"name":"react-query","version":"3.3.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"861faf933b610343f04661dcd62b421ef1439bf6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-wtL4P8kka3lkENyWgHSycsq0LdD6s2xWstvjRhvtarRLcsi65wi1I6OtlnWe1auvttoGnbkKZctxmqTIFuWNBQ==","shasum":"bbdbfbb0be42e2164a7b28aa704f6a9805d6b9fd","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.1.tgz","fileCount":175,"unpackedSize":1641812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3HiRCRA9TVsSAnZWagAAVUkP/RxYEkuYB3qhf21XiUXc\njWo3ZYEcBkO4EOIGhMpmVtxeVKi+AaJq7kl+pBn1i/YueVorN4ysuEl3dHe0\nV205w791bNLzv76LWyxkIM+YSjWUdlxtib+dDlAWkikw7vcRmSZtB8TUCfp/\nmInDnF7sopf+/+E4S8mJqSC1hVJeRYz6kq5xsHmmaZ7C8ZJPH2kVQrToNji6\nUhOrWynxFuiDZRkJNg2r5hCVmgUAvFEq9iKmJBGVcCZ1mO0iQYqqYlRsOOzm\n5JnG97aw5fudrz8azwerc6VQbWHX/VvQ/oyijdfXG0m0ha3A94v0EqW2X29z\naxrCekoG0ebsJhEzvLSr/8BiVBULOp9W4hrxImtclk+8b84pKddCCwIl113B\nsU7kcy2u2upZTD2+sA0tBA5DTgXG8Xl43IG094Cyr8rylnmzVrbS3Yrq4MDg\ngcgjfPt9RstMyNuZRrbHq95dhl+xBDWikLQyKxJy7tNM3gYUq0wppnwH5PA3\n7ZnfA/PUwMkoDqBwocYHrNXf9Y4DkyGWfOtiBfgvuH3WkCg5R9PZXcIgQ7OF\ncGrK/hjmnag/NZUriL89G+7qolYj81UJoKH9EKgcrdVn8+/i45qy5y0limHT\nAcqW/f97zUP91pvIgj4akzfTbMG5NZRZr8Hu272yXdi2ltjxUS4EVVF7ju7b\nQj6k\r\n=tziy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQ2PAPHSkCVWDceRbWbY4MZa8tvRL21fG5J/j8wziN9AiEA3PDVVOw1199TSS4C02exW0+kYBgau2oEv7NymuHl9pU="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.1_1608284305043_0.7262328035119832"},"_hasShrinkwrap":false},"3.3.2":{"name":"react-query","version":"3.3.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"75a042580a04bfbf9c929b0ce87d3cd6370cbc09","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-SeAtekP/D3Eaf/715LmAnneSufn9Q4eGQkuOzOQ08/UtCQ58P4pkAevHu/WIBwCjtffZDTHMJRMeCeeUyouubg==","shasum":"9cc75962ec8f6f3b4468a46d1b0ef160b97ef37d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.2.tgz","fileCount":175,"unpackedSize":1641817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3H+BCRA9TVsSAnZWagAACAUP/1j/2iqSvsvS4YRfn4w5\nXCSRGI+oYp9XHEDUlM4kGDYHcdIooqmeNPTn3u+RKrqntumy6mY7FToMltqG\nzMemzIozcNLYXMJ3W1FEXTgHesC7Xh3DK/v3T3gWwJfsoVpe9txfutZ/AOEX\n8AZi7/XlPL2FfU1iDBVRw1ANbnjro9v+Ra1oFo/gfxBhwcE11KrmJB9V1nFd\n7gO+QcllJFtPV8yUQqITaPIKbx9dg/z+d0RaV9pxCvVMBT+9LICI3wiG0Bbx\nn8sOKa0D+7eCLpgu0wlRRzIXpu4iXcZcqmogtSi58l0w2JO9UIQCmBFKgA3m\n26B4FMuTF5JWXLuaC8wM/YBnNPo2WBPLavU8mgBYsRYvbij9fDL+ntsEKhMA\noBhAGkfcWGFCAqGDCRO/ywDIeDEuMFuakCuvBUQK1eL84fOjw10JJ6SmxyaA\nK2OkNOgztzXGn+iVQq8DJeURiFPadGf61vlrpXqKu6TY1uoQP8NLQWxz7273\nOvYzQtLMx2aGtgjWH1zMFqK0t3WlJLtG8RyG7qcdda8+22BlRbhUL5N2gAYQ\nmrXNywUcLL1NH+KhGwLVYvK1/fGZUJXWOPGJvWuEy9xrE/JnBzYGd7FnBeNa\nSb20f+VPQjEcHV2m3K5TTqo8OxPGAXw/c6RsFexaRT5Ks9xfU8Fguy2zgezb\neEbn\r\n=2qj5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIELDNFZZIR0P/qHvanWb/KYLx8cyb3dDJGQ96TbKiCc0AiAs7L+LMUSjcrZ0V/jW4l8+SeXth+KwucQp1Izi3nru9g=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.2_1608286080616_0.6213792260181097"},"_hasShrinkwrap":false},"3.3.3":{"name":"react-query","version":"3.3.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"bffdc0e8ddebc1adfd1f9e5ed59b55ba7e39b2e7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ZmCSus6f8rDagJdnmZ6KZlWXOE+ZRtN25fc7KCWgukk78pDQYt7Nn9zp0EnaPsb7MQh7BaEQfAk57Qqt+8XG2Q==","shasum":"62de796e252a5e7bab058feaa1131b50daed63e6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.3.tgz","fileCount":175,"unpackedSize":1643688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3dbGCRA9TVsSAnZWagAAPoYQAJXSbGelvQz6lyzgggSu\ntv0PmKqSRShVgL+y057HlCxy1yWjMS49VJ7JjyqWLRe8XsWOsfNDu3JSxFRZ\n/vXR3qSe+idSmQ+wu/WqcdSocPyqMK5MhJoAXCdnvMHcnFMfLcyLtYaIOxo7\nPpAfWX+tTqQtnQ9rdtVclLNuVjkptDbQbK3IJdrm7lIPqTYOA1P4+G/34dv9\nqH4k1VAtGNegKLC18LfHrMAOyYD1kTFGxevJmDIl5ljvDGRHNKT9Q73/kKEI\n5yJwIhve1RMbzy4PLJ62RCELhcMcrVFTAyVPV3JvNuqAZHUrZfA7nv3lt+ne\nGei0RN2Q5/oCHf05QCibQon/8bknNHkfsUXOWasTx5vBwYlP1QGypBgFsJkb\nK7tI+37DgdnzUrQrSneb58BMfGB2va4hSzFtkGPIDoFHbbsjwjUI9p3ARxwP\nSGL98s9/I2jyNSXGi2VhRJkUEKVyF9P4JwDiUNXzkZIawc87wTLl6qS/2I8q\nD9jxlsw4spKWZKI2I9rKu3xzo1pf8GTY8IcuxrZlutPhfdUUE60aXeP977Ts\ni4yFdIEz/1bsQOO8q9lyivkMDcBV+ER5X5jRqJV4VbPbbfd2NPwFNwbJKiPS\nIM76q5OW0aceBnAn2uAECZyaADyEItK3+jUHadyTtLJhtP+TvWsPxAAO/pQj\nHap8\r\n=VZfV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADElpIq9TzhGIoz4lKlDgcoD+vkohJis1zIzKjYTBFwAiBayobUqKxHX4TDo3cXco1ZNzc8wUyzsD5lnsfvroyG9g=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.3_1608373958264_0.6960556202853487"},"_hasShrinkwrap":false},"3.3.4":{"name":"react-query","version":"3.3.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"2249abfaac3d8cf19a14bc6645a96a8c384c1354","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+HyDOjKpo/wlJW1Z5xvFfRzViCeqHXHhhBLmtfUON/SHgoXOAHj5bOPVg4f++6ymaIFSWxAyw3y9CR2jrB0IKQ==","shasum":"c187849455f4a7312a01769d94c399577ec3820e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.4.tgz","fileCount":175,"unpackedSize":1648617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3iZ0CRA9TVsSAnZWagAAMyYQAKGi+xVc6Xy934IRn7ud\npWBeHDtRRBlkgD4SySFijw+4cHuXto231eYDR7+oAQgl5il4s6GmiyLlOCOQ\nYWLmA/qlcqBapItTl4/5B2g8Ja4hZXhkYoUN2RAki3fH0ehBBqnFqGEQ5PcX\nRJx3jiCzQij57NQn7pOZ+EWVP10Ge8OqcY0m+707D6NSfEastsD+upxz4/P5\nQKrC5mCXJlTJxvfQqRZ9qmIKN52jChh4P2sMoEkylqBrVfdu1xJ3Njwo3Lw4\nuXLKIm7u24mE5SgViADyoCFi5TKksGRCmu85tXSQZWGqhQSzVP0K1u3bh4Um\n18LkaR3jbUNkZr+4+XYoY5fcEEzBq1AjBXnsRf1xPP6t+2hgK2/PIMg4jzAe\nIdeKgHOM/V7/Fx7Bi9VGwzjITX8pGuuMy4Nq/TMFSpyW0NM3vFDSV4xAyXEi\nWCoBkTE0f0HNDbYrDLo1XrIyheX0dDZ/plOwp/L4CxIbTAhJs/1ZaMN+/g1W\n+A4mH++iHKL+aquPgrZLZ82zzbCWOKqzfwipx2cKEZ/InlfV2V3IZ71hbsyl\nmvGq4Gtp/QP/WYLvD1KVgLLeAsBH/im3i70IWuP8K6R6Pe0Owd+MmPQOFr8S\nkqYOMsYcYqiel7mEuRUxCS/rv+S64nmXR47lFyJylK4Ob04+xLw+9Lp5V5UF\n5KP2\r\n=yOVF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtcHlg/9bu+cFZDhAav3ZcM4wMm7A2D3rtCeoqIcphUAIhAP9X2apQc/88+uSa1+2DM/jEbjNcJSnqDMgyCRV9Zd2o"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.4_1608394355508_0.8579068794578975"},"_hasShrinkwrap":false},"3.3.5":{"name":"react-query","version":"3.3.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"3ffe26e66b3b463b17d0a753aa007b1008fee197","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.3.5","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-q//JF7LWQIkMrta1xqlJ4ch+U7vMa9vmxoANK3Wid9mYr8MaDrfWVft0ZJaRR9frkmCFbIcBPUGm1AX7Xt+YyA==","shasum":"459adeced9d50a5450d0497eaa5beef32f88487c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.3.5.tgz","fileCount":175,"unpackedSize":1649975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3rYqCRA9TVsSAnZWagAAJOIP/0df/YS69aQXBV4L82Od\nioVTRPvYozgBO1n2Pr2odopY1aVX5HRPgXvvAyknoy08YcOEh3icCuHfq73L\nUAm2Gnn307a7aN9xhIVyRR4Zwq2tUwgJNCggWIBOxNq7t/1SXT/Ki/iXFAGg\nX7ncCvGziCLdFL5YOeWhGi24i/mso9s5UHE5FlFNym8XUI+NkCeMgwhltxjX\n+CUOgV0Q3VDLiajbagDPTwyH038BCJ9HF+tXDQDLIQ7eWa/IXMsZkukE7t/8\nArhAYPFUlvEjoz48LURiqUJJCoabF+/ceiNsB8wWODZ+tbjRNJ1VltsWYoTD\nk0OYapxD7Wa1RYUMCxaaYYSDjVqPp1lDkv/J0zXuyyn8H6UNxU68lg8irpNb\ntPxHCMsCC0GJTRYGRTidE54SbpgEP3JsEfGU7TxhozRFsrumOHDlJRzyGkPF\neHJjUnnJZwgRmwpJJpxY20r2ZEf2ph7eJyaTzCvvFhrggwMPKFDcWDZD1Gt3\n8qsDMIvbca2E18QL4cvE16arugHayiiQHwnS5TQaFTbkRmtIjpRFDg4psAsW\n4oIXxFYVgqE1QnmtFx4zLLV1c2gElld2qf/1q2MhFykMUZZM2igkH7yjm8YL\n78zCRlyel8XqDQBokLo+Ppn4wJ8QJ6UkyIE58inhJ+ajcPt8ybekqoMoywv0\n1SKm\r\n=Gt6D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdAmmxKYCuwtBr8nC5f30fsO36ACJQTpPjfxC9GaBrewIhAL0PGU1iRCgymQdEddcDeOKzhDYbfqxGNEXuG2Xa0doK"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.3.5_1608431145447_0.44127917235329006"},"_hasShrinkwrap":false},"3.4.0":{"name":"react-query","version":"3.4.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"rollup -c -w","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"790927de58d0638f01d620829e9551e0fd8064dc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.4.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Hsyru21BCjM6W5hcLS+AprUlfPnp0nANWMrmqxlSC5YWs8FZOXyxBGKaIBjtnoEQxVjTlUKEmGgqZBnhAz7hCw==","shasum":"98d0b05761e9526190e59b650841a03d57b853d1","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.4.0.tgz","fileCount":175,"unpackedSize":1653355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf32OtCRA9TVsSAnZWagAA7nMP/j9by23jLnnEaI56fwg6\npkvPImsEyrxWb92if1dw7N5nA7ybVTqTEmWSwJMDGZqq8LiM59Di2jLO03JO\nm9Pvg6s+Ys6IqYOhprOX8vtt/pgXVQhB3NHMX0C1v6qqrkzAVvCYxU9O40Yq\niU+Y+ERi1kIbtYqfJ8/Ub6WdGoe2tIzk64pzFfrfEMbKE3Dv5TQt9BYRogPQ\nHYLEPxMJ2Ul7tuTFekSvOgbjSEc1K/XzdFuR0JGT5l+q/yj1TYOCPtMNUxDA\nSwzZY6Z0RVKZs//kqcI/zRcSa2V7YETaPWpVrH6srAgZSuy4V8DyRRED5jY7\nb4ezx2Zi7nC+UeT2GZUXthFeXntmICxanT7utJuejfV5RRMMqOcT5y9AGPvt\nwBXNn5Hm2ao0MiwJzzpwXdpJTxLBQcl/16U3I32dyazYrWQWhh2dA7beRYIj\ngv8mrFNVV4JvIcIF2B1ukrlTJ9vZTqJuz0eupAul0eJU3fK3//04F8Iu3hws\npn3MBtkYK8T36YiQ2oUXNj1jbc6Z7yaC7QSLI84DPL+HfaMl3+CISCcw9rz9\n+pGL8jFHATMeeof2QqLXnhCsF6ubMJ4NndoeOB4dlDnDvNkQqGKqFhT8uhOz\nLTlHHvRHuM630rDKXPuZUFJab8+KNcBCj/SPUK/zAmr4r9xk4Fj5SuMC2yK0\njASd\r\n=ZXhj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChXnQgrrkJa6iJnmJ+wDlpsUfR6chPijsRuJ9LOoHvgQIgZVefmzWciFOUoXO1I2aYIh2DNERWrNfml6EdRPGCvb4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.4.0_1608475565121_0.24341187043557833"},"_hasShrinkwrap":false},"3.4.1":{"name":"react-query","version":"3.4.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"906f1cf4c89a264c99c46f53b1271b9435a03e51","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.4.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-CufnV+3XePVK8sZsU13LjWV870qlicvKuVdALgpEIygjwlSETwvC6+UML59BokBWWYO6dXOH5+9iHJK8MvaFtg==","shasum":"85b510609a4066d04a1882636e10e1c8fdb42107","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.4.1.tgz","fileCount":175,"unpackedSize":1657390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4hWVCRA9TVsSAnZWagAAXHcP/iIPmopPC4Cd9GzOJNzG\nPY+/g1clIJ/eavssbDiXOetaaHLyUnzdpLMTPuFF6rh0L6g6J/5JIQmDi8OL\nDGqgvvgqJQpdJoOF8p+C421Cl3K2uI1IjDKnBc0pD8jDaLVegUSXgYk+vXrl\n8s0+6DvFDqQdMkZfMStyF6vKKAMhLV333ojsmrjbICRSMENtjdxVhoyO/wLm\n1wL/kK9QI2l+TfqmlryvMqMN3B1jXBs95M67rvC27VMcCIVB9U4aFDcVnP1a\nRXJD2YDO92st+4vnybs9YGR+L59oOGGGP18RMpHg6z/ypcNFYMQvgxkXChe1\nyKfY9SCDD9/HZLlpuAGjIvuOpA6V7y5Y9q46/ZTxGcvLmvRDwmX8mUJVlhq2\nUh8VscdIVVYNahNNhdcnvXk7te/jG/X/kOhUOkkvm2DqHonpcOK7MP8YkkZf\nY8ac0cuXbk9czXiyjBH9NKCdMdKZMW1OXW1gPhQ/1kZQZgt6GTSXuIuvWiah\nSHgCDN+xjAfT+I7CcRlMZ2CCRYiVMn8f+xjBZ99cMCHuX/zKe75BNWTi/mPR\nyZ1tpaLGwVeIhOVwGHK8YhJV5ktPSwMTm87BGdT2BWVWHDm8PGs+Lt4ARqtj\nGF60cR3uCPTYQWeN9UxSng3MBJqBRbvnMjuNeTDlncf5CxmZDpObKX48UmMi\nNRnJ\r\n=8EDa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQN2VoFvjrcHpfSeKDR12h7T1CNxqyjsxe5au1Z2z+5QIgSW9gdrrJTH5qWSDTHHi6HVK6iQRuKT9eJy8qU3jY/jg="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.4.1_1608652180817_0.2140850704230861"},"_hasShrinkwrap":false},"3.5.0":{"name":"react-query","version":"3.5.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"77f434c10af803d3d871ea138eefb20a91b3e360","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-mzkgU4zdjiGCOwzq0O5eCRp4HMuN+KCQv/LmN0vtdM98NbicRhhmeOD8fVfGxXlR+r/LrUxIU4UBVXAecbv4pA==","shasum":"68df66e4ca250b599eb25603f83d0efbd5399bd5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.0.tgz","fileCount":175,"unpackedSize":1665556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4jSwCRA9TVsSAnZWagAAj9MP/31f3zcnpUZ6hYavev8E\nqrBtxckLOtNydY3GmHNtY34wYy9lllist0ybVJH/qqG6otoJGhnNMLeWWmrV\nf/1i79Q49/A1/eSyBsrVKdc9gzypcb3Mp5nwWhpwAldKnLoNUl0mzGYvcnOF\nYeXeADFImFqoxt1JryB2kYR9wKqyCXcPOXZ58hpj75DiACAGRhdYYuIUi9ZH\nVZ2VKwW0Yhjq83wZ7mRFmD11smxFc18zKKlX+vWHgv0M4UWy+tjJyVXtrKUC\n89za7UEq8I2m+hodngYbBPWQTsi8x+QVU3Ks7JnwXThy+VpmHNr/VzL6EU9h\nbpgqFdX/eOvLMahBD5a6WK36SHBcYSuu2dzL6Eb/nNikkTk5rbfGlWO4auEy\nt4xVAbRsEaBDDVpSL1XHlW6OPToqKaTqfvBy8yJIKJ9pqno1pYTLddGFQWmd\nSy2n0nGpQxYmWCrDI57Hf/DC1guLuTVtfrVUaP19aKwZVLsotYuoyonFBU8j\nnEXyIjBDSUz9AdlAA3qwwC+xJJtu+D/JcYIEVh7S2DdCYvtOU1gzX9qFEAY6\nvTLxH9TVYkqbUkMoI6hfjM2J6EZrIoO7jdPSl9josOkT3yliicIgRyiMKLOS\nESMGJaUsmidBQ+GfB8UPzIWM40w/oVhuXq74BPOB4JpxCKczXK0LhTRtLMOE\nsRWf\r\n=Hzhk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQaE3oE1qEZ0ymxGJ7G0otqXWDDMMtH6gnZZXue+7OfAIhAN0Vy8S/GU1hTgCS8YC2XMrv4FOgjuVXQfhaqh4q7meg"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.0_1608660143546_0.2832839783483092"},"_hasShrinkwrap":false},"3.5.1":{"name":"react-query","version":"3.5.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"e69b391efcbb09015dc1ecdac288cde17cfdb703","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zQHaiHcMJqRIDc+iVlDnltItOxQ/QHdQSJ2FBEDD4Rmk/2FgrAdo699ovBHxyBtxzxzrgldxOAKArPnquNTMMQ==","shasum":"5d78d40a49702dc7e6cb9cbf6222a4b41278c7cb","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.1.tgz","fileCount":175,"unpackedSize":1665850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4qi6CRA9TVsSAnZWagAA9eYP/0vBj0Kp6l5ctTFj2B5Y\njJKa+1vesR/lXdAKEubCdypEaec80fiNDfxGA34eGJGzViuNkAelFR1Pn/TB\nLs9YVlOlsH55BHGUSvCK/kvS+uImMAU46LaGCAG3kpcUisJlr33NTU/Ty6uh\n9bCEm/mVXLdtS7SHw6Uh7RIaUxs9flECPG/K5aCjkpVQl+LOGgQXpnt9yKcG\nt3ddR5s4WXUu2Zk+7Iqzb/1UA+ySdKGn+fQveIvKZdryjy7g34tYrZEdmfiZ\nmo6uGNpRw6tfz9vLyaw2Cwq7XudDZS1hXCT8AzpOgwYWQHUTQzOrSrr5U3s2\nFC4fEjtGD086jj1Sa4PR2caXSsH9mPx210QjoUqw9rp27mjE9sHGwh+laBzW\nmYjEKh7F6Y3poeZkNZWciI1nFhmQDkXNHaQnudaP83nqejbhYJLCJspU8oPb\nF8Y4SzR2sDpEjpqKr3uJpdFmIMTwRIU753IxsIcLN373PnZkMxC+rJUyHPt+\nym42A7iOPpi1kbOmLMkPGQK/dB3e/D0WFo4dkuPbkaH3mv9rFtf6y3fA03Jc\nFNHRyVvovTnByPNsGkR10uwyyTrk2YNKke0eN/W+nMsduw3IhzF8Ss+4FKnF\nG26AynWtLODh1udBGDQ1ExKHeVsdfrJFpfmq46A2YM53+p67149EeCB+kZfs\nwRuw\r\n=Y/mB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/3/RDwmBD4t1nErVmXHXM3kwvd8sb3yZ/PaxTmHOlEAIgf1QX45jnNkVBxBXdEZf5Kt/8AoLf463krUedceeYO/E="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.1_1608689849439_0.5045461811834937"},"_hasShrinkwrap":false},"3.5.2":{"name":"react-query","version":"3.5.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"8a8e3189ff1357766741f39a699027bd21abe677","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-yF+xelnIaNN+Dfn0czzS2c6EspX/0cIm6bTb4RHh9hJ9HDLzSoukHi8bF8kITTI0/O6O9b7ku8iMLv50ZJo1TA==","shasum":"e6a97e012cbe2d9b743d118fea2d0836792d6e93","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.2.tgz","fileCount":175,"unpackedSize":1676106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf48awCRA9TVsSAnZWagAAH+oQAJXP7oM1sCpOvTwbq1Cj\n5WrGYLipyvQdSqKEB1LfPkbduUqPoKRITDFhQMUfrvuDI6z4IfQhynJHSP8F\nf+gPHwQJ/ZAX5bHxgIX3QMaTDzQ7jOb26Y/Stz+GeJh+6pwA5XwrSGcdxdDl\noQWpvKGBZhMBn5TI1GgpRmjzGN4ndxj42zKCEP+pxxLn7rYnoqcqVIBi+YZd\nAcn7iIhwmIbSVUIOYT0Gw5vul7p8T9Oplci/l6KzFJCGp+D8ce9b2fKlvB0r\nrL/siGa51WzDBAflf3oSXBcxlS9rnWd1hhGrvI+vAePP2HP9n8jn+Er5xcH1\nBV6HCooQlghTTUQBq9p6s0S25RSY+FV4RDO5ce+mB8gs713KaQx4+6IQiGaG\nsieL7dmQo1+Zwbvz2wR1y5QuPcxJZIiK6B0ZU890PfG7VVH9MaYNkXLCzC7m\nnos12C0r8wRELLPKZF5CHpUQAAAHdmi7jcpL2gvnfm+biarNs3yZB+N6ZzDp\nxVzqHJQYcEXg6OisGL6oQJMg+eL36vwJ6Lz48RGqxnHNJnX9/ACwXbbI2Xy+\nQFE5I41X1MIzqtpw6tkczqADSKW/nyuC277UMRUZi2COD1u5D1msYwlbInM7\ngFO43yggO1A0mAO7CGWjQSTk4I8/vaePrbgyMiPi6WBvxR5YHCm6f9VfiYMP\npfP8\r\n=Ba/G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVgGfgpLMSiYV0+P2UcnjIfOYX5cgFRi9kTkEM0JH4vwIgHqFFqKLZ7C4wACjSusZaqSt5+fls+kvZxrpydhPCVq8="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.2_1608763055427_0.21459236015794314"},"_hasShrinkwrap":false},"3.5.3":{"name":"react-query","version":"3.5.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"c95cebc078f9995805f83c50d7536c8d3d5398aa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-5F4OTkF4Y6igUhwrn7r7IxKTP/chNxK7IrmwImi0luYmXpxgp4OWnzR5FKNDMk89ozaJVKIu08sKsj6n2XjrXQ==","shasum":"d0c680454f51c03b3e0168382c9c2133090670bb","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.3.tgz","fileCount":175,"unpackedSize":1676511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf48+NCRA9TVsSAnZWagAAGHgQAJfyA4LydlfMsv96m01B\n6o1y3usE+YDuYSo/N5EOGJhrWXuSONhZzWqsmEvzJ3yvHUmRaBnRkviKUHly\nN29QiRGH56QgEFaPNQscZ58svHB/K2eCgR72R+unjt4K1CZHAS2L5SP6yl6m\nSmxmfp/yOdutw+GP4OzOh+2vsMF11Pvwn9OwnBJdh2bwCRG90xAedwbRtvHX\n+jFSs+4jOciJymj9IEe+ExokSmJzfdxwAXCeveNe9EdOy+E0wxz3KJBGggVy\ne2DGKuPbPHABEZqUTN4/NE6RPyPJumtt8seJMWX2KjIgZr90AWWdEizktH81\nOJ9VjSsaePkqnQioU3YdLUJdpZSUHGd81QUC1r5xd/Sj0rJ4o+6IseKbA6/P\nUkMIRQpVHWCQsuwCyQBmmimZhUbdtlzCYutk2m3K92oyafBpK2G11v+Wcyfq\n0KvJxn3rf+UI0ebNIaMi7+QrSKXcVsDR3p3jVjIbGVrR+FHv8Ij/cj45L6C+\n7Cuxoxp0r9IODiRNKA8tRITSk4aYAEqUM63eeQCuqW4WMWaOTZAhy9ip/2Jw\naxUmq5svP/V0KO1Pk+QjQHRC2tqXTh3YcIMIxx82UnQzaF6BNtworzdA1hgs\n1iGXtSjE3njs/Nq1hLthu69uNc2oTYNesT065yzoBYm0PQPMhtu3djDed9zg\nbl24\r\n=jHSa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsmfRy5llg7w/ABlW0AwmS7tngSe0mVI6rKkSssCAxvgIgJQ7kghv5+DSZbsk3/qZgb1q7EPmoNpITIGl3IKW4FC4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.3_1608765325264_0.7915458278831884"},"_hasShrinkwrap":false},"3.5.4":{"name":"react-query","version":"3.5.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"24413b72825c99e1e5bda075db4766dbc2b31be5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ZhJbXyjMD5yB4t942SHwrRSqlk5lfND7VM1u+eq3JrV3LshCpw5hdlhepFs3sW/xxJpo/h+PbM1jREpx9iSPuQ==","shasum":"371a9e2c40cae6139b6e78378d31cecc16b3cb12","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.4.tgz","fileCount":175,"unpackedSize":1677360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf49DKCRA9TVsSAnZWagAAJ7IP/Rd67YnFisJWRlHr+AmK\n9WTsSoU1JyHhtoWwz3RPZehSrmyvopUd2WH7UV5/pX2gSgYwCkN+hRFSGebL\n6DuKlT69FdeW7SRkqT98KV5vp1WCE8GSLknId168g/ng9ViB7BoMFPhH3mQv\nJDEoWhBMXnXwG8m9cemkZ3NSjMil1P3etjJ8KHhZXBHXR8Zgj+moHSce1XoX\nu8c6sxUK79zY4qWrLKljoelMiIx6GeoB9HWpCj/kW5FNlvcANP18JhodEh3c\nLkIz+yOaTAOo/hFY6egz99DUZk7fsfY7UrBx1y0yyEFo7pCbJkpmNb9MxH+L\nwdt7By/pxp8sB6NSRJwBkqIxt+3kAy40XWuppx0OFCbaWYeEHZhPI3YZI/nj\n/EdPUZH0SA+tvdNhI3DGYFdX+GVUPRryptTbVx/AQE3/HxjZwHmq6qMTX4aX\nl3abQ9KTFeHX/q0KyEWyJCw9SW156kI0O2FLEmIr9ykcLorEEO2fYA056xKM\nLw2Tosfq3j6l6FKjt80Doij6CD7HDL0us8RVsgu8dSpqkKfPBVmPws1xQ6lv\nnMhX0LU5qsxLUF30+l+qv/0oQvwKpkrSSz+g3GhqSfcsFKO2DX4Qqiv1RvL7\nEwybr678FRZlpOZNKWJWQsZqi4SoKZ+6zlxsyFiYKfZci1/PFMPFGbCDpKBE\nltIZ\r\n=SQcV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzHs0zkiioUYe15n9kmLTPi1PJhqzmjBRqC+LpnBFqkAIgOIft8nUxR8PyD3jeABrWlFvpzXw3EKdHvV/HkWXK9Bs="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.4_1608765628839_0.9768212944008008"},"_hasShrinkwrap":false},"3.5.5":{"name":"react-query","version":"3.5.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"9f79d04473b703e15b9dd2e175977765933b6775","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.5","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-WYZcHcAs5K5lPGT6CI8fz3lU62S8IfZhvB1K4aZH27wg9T6CWei+y7IRyZwti9X18LX134O4olgEuNth9LEX+w==","shasum":"50bae84066e1f61dc9a14ee7db8ea1a224535698","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.5.tgz","fileCount":175,"unpackedSize":1677063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf5AmRCRA9TVsSAnZWagAAjL4P/2c+K302mpWhFFdipUmg\nL3MxcEZsCCl4ye2Wqx+KwDEzp/fNbeGqvHZdGyzN2xWzXWDCB0KOXjvanvwg\nxsuLnpDr0+w1qG5nVaQWyvro2PCyvNpeGQ8Adr89eL+sxg9UuV0XaT3YjMTL\nLKIacgtDk82oiQrf3kWEJwE/IHAVfNDnp+ztcKvw606ZZNrv5vWh3yfudwrC\n7HWcwQPQOLsobx984WP62CxacqThpyBnFzUpywCv8Vy9V0i2EBvGCV3FWMaV\nAG1wF8t8oQgDWkW+iq8rNT+lpu5DC1NmnqK8xnQNWmE5Q0truvnWdvOofjUI\nErsH8suWKUzEsqut6VGrOlXNy60r97yO1OKItUDz3N+Eg89I3b3+hNeLwQv+\n16Hs1iq2LmA+t6JCLMViz9UOTXVzj7q2WjFAeOXCQl6Cqm3mUFeGD7xIjR/V\nuDuhA0JBQW6ewKIkUcojqiD8oaX/ihok6xKUYFFkHttKd9wqi4PS2qBPm+jR\nIXZZaq/JXCr36QTc3whUylYdWnQU3PyroHKhW2c6aRJmXtx2Pm3k7mTruCWm\naj0jIofZOsRG3PMXhFKw5YzFN/VKfVxhAVncoxZa1ElH2B3FOsV+XSRZVZV3\nbYHqOhuGXEKpvZqruzJ3532UNTe52RpKMu3NmYl53MPw6Kii0zPY3QfND9pK\nx39C\r\n=1uyN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCH0fjAhsNhCYTgrzxWt1ysVX5fvsxyA2kkI4Pt3ieWjkCIFSLCQqpoGw+REveuWdMTntJsA+hWugK6sD9TR2HkQ9b"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.5_1608780176424_0.5612741284025611"},"_hasShrinkwrap":false},"3.5.6":{"name":"react-query","version":"3.5.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"c21e88cbd86ac292611c609c1dfd5dcc81a4b27a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.6","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Fv184wu9FWg35PkgyZmEveveeRr+6+rqefVWf2vI3fhmWywjo2uBUA3GHwKMKCEI7Xb6T+6SyQt23pXhJQle0w==","shasum":"ea52404002e91e6ce39d49bf4ae96bf62554cd23","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.6.tgz","fileCount":175,"unpackedSize":1676981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6uY4CRA9TVsSAnZWagAAO9wP/imHK7pcywVoEY/W26Zf\nZTd6KTNzXPblO9uvmg0o+qMzZTJ2ANu/cgz9I76jKof9og5oMGAlJPfj/lDl\nY3tUeRoCpjosQIGEHQyT8ElWVsBFKkJq3jLrb3GF0wmrL/+mcBxcTye83DHj\nB3rYSDKOGiwFM3QoC93o8tgzl1lO0Cor1XC6xiASRN3SQdscqwDG90HafH3O\no2c83tkr+o1drgF1s9DPOA2Bs3lZVVlBc5gwA9yFaA+7sTD4izeDw1t6jLv0\nsXZ+dYSeVVsTfxokW0f/3ZDYmK3E8d3zwP3/dzCUl+GLGQwmOrdWseROdWib\nXiWtFR6xEmnQzfjh1po24hzVOGljl8izfcjYSpnRt1HGDzK/8xGuAuGq/g96\nkAp8aTHpK4b3prPIdgUjLYTc3D4EUV1iILDRFtEZ46F25KJfFlyWr3ed8IX0\nYLvEb/mDb34XW/X9wZ0MYjHlYU879u6e9OiTzz6OVdUV8iqswsuONPFANWfn\nifl+yg+7F5x4Jm+UGCzrp9WHLRHxaGjC9fBkJ8+VkkmddYDJ6BOuAcCHJmlY\nvLb60tN/QolcaqLAycy6O1B9sSgM7dvcEwlBIWg5uG5vfR1H6V+UOc2+VuFB\nUHoJ4KIdlwPUTRuez56ti+xZcWg5QJoLHRk+rcJejzLMobVJBMfq+YRceBGB\nZ2N1\r\n=Jn1D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC24mI6PiKUWF/d/I4rCcJhMRJAFPq9lQrwmikXkCfBTwIgFbbM1wVk5SdulLn1/jExOWe6jiylYiqdeuGsqBZGHmE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.6_1609229879379_0.8087635906023773"},"_hasShrinkwrap":false},"3.5.7":{"name":"react-query","version":"3.5.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"cc58b7f542df594305dceab8e546d0e6178898bc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.7","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gOXAn3JqrOAjJnWSgcT2wOTxHbK+zMs2ppOraNhk/9n85lMJWK01SidA4zPa5tv2SVb7ReWaMs83J0qTCCxI+A==","shasum":"2c50bc0941a0eb7d85972a19e609a65c5c1d2255","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.7.tgz","fileCount":175,"unpackedSize":1677421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf73kWCRA9TVsSAnZWagAAGlsP/1jUsmLJHvxIWbA3P/g+\nzUIJK9if/pE1r3f7g7cXn9yJAUjvUFn6GQln2wdX5ojkDbWFxvAOnRtDvCV4\nRhu7HkWzy+uyEQdevwIJKK6Y41fGsl4bjuqio6mWL98s7BYh2ZUL6sxsoRgU\ntIDllDWKpidW31fUHNNNvWbhhjuVD8Yq258L15zi37h5/X9lVQQeYLyH2BJz\n1ZLCnAq2sJ4M8Ua1m979wDLGJDcpQbgJSwYJ1PvuwmmQ+QxTmDFr9+MSYcBY\nThg/71ne/ZFlMrsq4Pur9cnM/jFWV/1GyQYgkEYY0mAs6CIHtcAPDLegCAY2\nSO1uUjv+OuBfc2Nul7MMXZSNyEbldtcIiSUMMtFLnYq1KeKMefSVYxB9Xkk8\nCd9qN9CAIeyfM+HNL3ICm2dRZ/TItufw6M/0P1KYBb5apQuaFvXoCyeJC91F\nlbI23gqZhRmp+CKYzEkZ2awBufS63W6jJOYnSIqT7tlz3R71APdWpZILcUOa\nF8rRIaj3kUuVeuvU5Vf36rtzKDeYJkBlEhYJBy1CXzOPaxr4xyu5FQTtXwzS\nkErrELNYNXrsqy8bm7OIEfWuaEtv1mlCGZfWNJLTM5dV9Nl09ZEtMRcjLJbD\nrKP2EC2Rkz2eUKEwzEr6hrSAHJnQDXOoKc7rqSN9yYzPWo1en27F21W0bxZE\nWbNn\r\n=EN1v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrSimjjgtbQoZkBa9SUSqe/AnpN2vr1NLjAQB/x2zAhgIhAPJw3KYgOwrXg0QFSu5Ao80yI6oi02lAfEIVe7c7Iw6A"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.7_1609529621978_0.7512547609047937"},"_hasShrinkwrap":false},"3.5.8":{"name":"react-query","version":"3.5.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"b60ee0e92431c32e5cda7cfde0481b55245ab466","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.8","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-oZX37yYTO9i2Kr4rSRw5vfcYaXhsnOXgRHzwDvsGEpD5aKofkNXoIf/TRvG75YA3VdVO2FrNOI5rwy85oK8EfQ==","shasum":"1aa4f621eb0e43eeffc8e854c3f55359f13de349","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.8.tgz","fileCount":175,"unpackedSize":1678456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf74nGCRA9TVsSAnZWagAAMVoP/216ugwEKXxFzpYOCaww\nHA38+7pp0Gj+VlPV3LbZ/fA4r24ffDJfuhq+MY7Z5a8wRTgCnw+IlRroLjcD\nqEX65YqTejpSU6b2ItVQPsUVgJzW2CGP88QQgjGU2j4J/AXPzAZzYJxDKK2E\neM5RdfXpDNFfp5iVwpq2w/yoz2f4QelblSDMZaZ47w/Elg8fCarG7LyP1bL+\nllVfd45O8PB4Vyfa/jWxVCALt8c/hGz5HvdrWdmlj/UUrjXn429hHx9hRAdn\nE67fkhDTgCnJVjp6ppr3b0HmN37k8mhivqrnCc5JqE/z/H/MAEdyrUaMuizd\najukyfYyx08G3HjOPni5SCvGHOvOlLI2TIjDV5Txmi/DAhWqfWpjyKl2sPIa\nJ5TcNbZHep0RSwMtb7QqqVMIemtudwXTXWcobdMAvz9MM7AjLfx8iVflptEK\nAbhZg4619LUuIxGV3PU+uCfK7hQxikZwWOAZjJjOFgYa4gaPxd9HHJjqgXdO\nEZfB6z9Pg8kPUITFtO8mkEbvmWgqVWGve9+e+l6sCHvMIpFJ/Ks0RolPhvrJ\n18zOMFdyvdnegF7RCuUJlwCMcNLTaWZoAutad2bWq6YmeOA/+L0zbWrxOlBw\npTo+WbQwqLJvpWWEhAeIirfVXmnFwzca6AuSj7K8Yy2PjvAAS3SRFGTtxFpT\nz99t\r\n=SjNi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUQBBlN/U3+LFDHbUaXJRd5pcPKwM61wZyEAowC3wkwQIgbs7plAwEBadnyBhGQWTM8lHijLNGRE4ltNJ57jA0Lj8="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.8_1609533893763_0.5730667864129155"},"_hasShrinkwrap":false},"3.5.9":{"name":"react-query","version":"3.5.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"9247ab8ca57bf79e080c9e8be7fcf745317d2b81","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.9","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-thlxrnl7cDg6qmk+N2ADjDVDJkoU3c7ZFJivYph0XoBDgkRIpb3A+tpqH7o6gu7JXZum9lfX1o294UfYfTiwvg==","shasum":"2c001b5235e1afa11166a629c8645c9dd9464741","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.9.tgz","fileCount":175,"unpackedSize":1678956,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf75vICRA9TVsSAnZWagAAiU0P/1HgTDj91ikGDzw3Xj3J\no3R6Zrs1EFN0W4K+Uh/+Y05OkeF9s9aYNf1TK8ixS1tXGGOe789gHyhxP1I+\n3/RqXJHysX9+R27TH9A4+MxBJvy8vwAElKyi9eYB9E2BoAHaBL0myt2OJHII\n+dkwv/MqrbvPl83pHhXLs6zN1av1iaKFMlxK5vyy2f53px55rU1LHYCCZvps\nz0xe4CdmD1pe8ieMk29YdmEJBxUaC4pZg4UzGSSiUPLC3aooNIz1RF79dr1A\nLHTxcmAcmkR5c7diS3Lz/waFd2ARtq+ow98Ks/0PAaKqLyeakxyeblqv222e\nesQc1S4b7xiyRym+OTtKptYT8F+AHOHgnpn9HiZeW3RhwaEXZ1CmmJugtYoo\nFm/dJjFjN0ZoXiuRxmN0oJk7/2eCxRh0xbmbaYz//7wHN0JrXwRf3ABe7Jqs\n67MmL4bH+3mOS8hdHjc9q1VcmtP3nvkvsgj12E4B1Ano6y7xkcw/L6yiaot/\ng0m2YuOfouJwiwZEAOGEUjdReS7vKgqXILWgReTcDCKWZrlBlKGFSWc4bCBT\nKuJ6lYM7WF5REVI4y+aoziAzpRsXZBTowfylUK8KH61gObTAnkRVUD0L8hnT\nviskbvtv2kunl69wqjQzOG/y+kFqfpm8oVLa/s7CQ149azsdDeBy2yVica5m\nO6/N\r\n=orMS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0oz4DdJ/a4nMcq3DtgvwpR5RbfrjSlN//p9/GzkRllAIhALYkgaYCXTpPRAPcRbmTg0bIeQXrAdyJh53lRUXDTxFn"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.9_1609538504354_0.5553503834545945"},"_hasShrinkwrap":false},"3.5.10":{"name":"react-query","version":"3.5.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"1299ad6c4ccd4f07128f7cada49dc7b962cdba5d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.10","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gYW9xgRdCoEXwvnXw+r4hxYkD2/csIc/NGdEjFgjXSd04yiR77b8mFW+qNVTcFSoH0NUjEcLt94OLWuOK02oGA==","shasum":"c6bc348dcea932b59035e93ad4ab5d98d4234fd1","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.10.tgz","fileCount":175,"unpackedSize":1677545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9Cn3CRA9TVsSAnZWagAAcpAP/37OQOQ5CpnomGqpbT5O\nUq/VBvviL7X7dC2cuPxWX8qYS4NZXrhK9AspUH6q9K3TepTAaoXBUtyDP8od\nSF0jxF7g6LlAtZfOD3ASlvtx1Lpakinj6H5Apr0LV00uJpgu+Yb3VudH4F0r\nAchfPZYpDcvvj2/IMHNnnZxqb4GLka0IWt8SQkXuXL0jR1khXGq/KlKqKvqO\nTKl748zcNNC2DmBrIH3jpFZgtn8J6FWlCLwbPWpJ+KKVR32QtlLcxu2pqGXe\nXHfoT2phIkESerP6CbcneGUkwyrXUy2RV22dpOoZ7zzg4hI8Fcr2gZ4fTTMY\nLiwsnXWSK1f0yowLQSi0/fWjxjN3tt7DTWKFzgc6Bl+t410X9u8KAyIqpyq9\nS52U9ktXHEEpzNfhopA7fFTpOQRRwU6lPSSQDNqTsMIU2tIVxSbExQ4TEMuu\nPaMuSbVio/5UjToo86gTreKRDPgRAfE9FE8eG38+/6Tv+bAkc9/cAenPib02\nMlElrdELZKLmUWsM0A5Yyj2PJUXvFs4G94NgmFjn873vXU2iNwvkMMxGiAcD\nS8d/hWGSJU282gnM5rWmV5NzFF+IWN8gHJOYjSjmmRj0uWOOYxEv+/ZtL3NJ\nuSBxoMPdylTNzskzOlc+DP46HvhQHsRuD6CAcCukyOsk4+W/Yg2XfD7lXd3+\nMDu+\r\n=ojaa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGapn3FIA0t0zEM9PANvLeCCV6SSfPzhHFM2caJJDbTvAiEAkTstW4J4v1MYix+oB+UgVabjaTOhJLfWWtu3XZpiYmQ="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.10_1609837046541_0.5030671638492841"},"_hasShrinkwrap":false},"3.5.11":{"name":"react-query","version":"3.5.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"6458c506ca9e96283f8a021c17e4eaa4e5a8ef83","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.11","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-tn4IX68WnZ5bKVcmkltPf8B1ZO2Uh212bldobwSyyHUYTt8Z3cOqldBkigF2OmY8IZI77A9rKe6wV6s1YOk4vg==","shasum":"7dbb21e3783437d612465ab938a854bbdec8d785","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.11.tgz","fileCount":175,"unpackedSize":1678823,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9O+6CRA9TVsSAnZWagAAhlsP/1rA0nxCi+NwwrsmUMtb\nHGkm8tgmf90Ux1XLOaAcFhKLKwSYY7lDvgFdEgrULMqExgKPPxnRMqtYO1wb\n3NpuFHpimXZ25cbbrsIKXDKrgL+yulM4z33E84RbqFA0/LJT4XlNQToBRNFV\nYRj5PfgeNr5Yec/eFDZv8VBZ4zNgytT4MFCgUomqzONgh5AEEZL+M4qYdKsE\nUBuNrRVESaspr5RGd6Xdw6dFIvsby9MUAmI6Wy//Vv4kR1kxnPslKlgVRT72\nRpklm63X6lPdRD7bPbk7t8MtJ9MUCEf+Z1xyoLduitfL0JgvFO7r/BozEmvm\nhxST0D11ldT3Q+uu8Hco4p5fkO7IyeMT/sax0ge7qobHVhWKPQVBBkBhzrxF\nd7fABFZTLm9phVcsYt6+HW9NvdktUUMrS/rlY4QUEMnGZKAdwjz+EKBOrfKv\n5hR3YP0+omxo2tFFvptwDGFp1xI06t30q725ndiCUTFrdLd8BbHXM91Hju9G\nClFqGBHPuN0Xx6iywrc0bbHGWe4akPhuMQiVmTa5hzPv3GbW5FttShpO2Bwe\ngM1zB7xuO2oDzJ9f/neBX8imBzhWlx6e6R8Cq/1FNeq22KRnkbcGdwYUTVGu\nkOXzMWsfeuEhIxvwXxRmAK9EtBL1HvaCK7dGnCgA0d05rDI5zMuA6sjCYXKc\nYpRT\r\n=QOVk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/C00FwExsROI14TMayIEIyVDn3Q2oXOQa/eUJsXK/gAiEA1SaNLdma9kB1WfRafuCvDlxdS8t7AH4ORKk+ZgNMQbs="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.11_1609887673641_0.7066595568898053"},"_hasShrinkwrap":false},"3.5.12":{"name":"react-query","version":"3.5.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"dd6c61d561c6b7858027bdee1f075d4abdd65e62","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.12","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-e7cqRHoEiA8iew9oyC8rrPnGsn/+vCFt2+2TKErWHptY+3lTqhYaETqh621LQcSYX3EhA8iU1sUCijRDQf929g==","shasum":"953b4dc7192cee0cabf9e81e9777630b9417167c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.12.tgz","fileCount":175,"unpackedSize":1677039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/IzYCRA9TVsSAnZWagAAa+cQAISwbDc9cwzDNOBBZdy1\nBNGA8KE08wKr8zWqBmgfnSmSSnWXfcjMQvzO+2ugVyWV3vyjCqxw6D/q48HY\nk4Mg7XvIFB2xdBgIrGt0U+pJVCwWSr/9q7rlr3fg+5ivuM03QqjFpjysUm9A\nMhHQmycpybMe5e7C8TfTxwjYD9F9/rjJOolGVeVjqzhne/CQCRVl3LiimAcm\nMgVXJqaUMZKfcZYTevL8a2jXZ2QcDJLnXxDP+P3AbBqYZelHF8PyqynSkB4D\nZogoX1VMDQJn3zIOdHQLiGxiayyc+f23cerLns05FJudgiBr3WNfAMjkAHTF\nqwQ8tsrRR4nx5QUh2ScAbz4WizyPnBogKymps4J+9yykqMha43fmoUGpr8lo\nN2ev9nbxDAaykXqPJZlcEEJDmSO8kMdEt+BohpKuuTRpeXjMalo4lrFPu9Eu\nFtA9TJLMNa1CtHgOndYx4Bm6acnX+rZWtWgep+kz5ufyGrLj5KYxlOhfHx6p\npVXmNdvem4F+VwXqbxuIanUuAcgTCT2deV90lazPG1xoQk59CRTFldyllkic\nQWaYzm3kW8QQR+t2XJ7o0EMhIOnSOhd2/tWwwQQ4HFwnL6UyB+kJpQ7qvYg0\nVxcaAz8+uawW4JL1nLgGAO1sDQVWFDxBmUBk5yheAo3Q6UrLtf9DkjA58m8U\nAi7b\r\n=ryrc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQWkWul0RGbAfASpjrL2ctmMuo4Yikc3sS6ypge5By8QIgarF4VVsc9NuKOI9lLaXlyofmEGn45eLdjhBoiTqe8/k="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.12_1610386647486_0.5319180154989414"},"_hasShrinkwrap":false},"3.5.13":{"name":"react-query","version":"3.5.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"e9208b240170eda4a6fe5ba448df4ed65999771e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.13","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-cN3W/j51iBn4bp5HPvPg9YyI9nHPEV+4uwKWMNbhDVp8f5pUNVZFc4KyCe+ggUF8mKY0XAALv8TVzoKWboWf4A==","shasum":"39e39c9378a24e1dcd5428bf555221a11657aaf3","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.13.tgz","fileCount":175,"unpackedSize":1678541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAgxuCRA9TVsSAnZWagAAy1AP/jslAHQfq5xS3JAqSpBN\nynEEuS7oPHjFEmuThbfrgHEy/Tp0lYw5nR/AOpU15vG8AnEaE5FizFhJIXJs\n++oHpA+bNGbzUZ+QXmYhIZUkEwrTrkv2lilL3qo++NKuvNX4ceIJ9vgHyZEC\nXij4f5TBnqlCRwjdB/+rTvfbTP2k9GsuA9jFdfYc7iecyil+cWKA6Ggpvo4o\np/nn2O965ink0IV8Tt/3pxUpmisYzHjGjKduH6q+S5d7WEk4nDaV9ZdKyl7J\niEqPikyEbdQnyJLUlDTOXxSpM5sgrisI8MgEv1cO9j9cClrMMAf5p+CydoPu\n7E12v72/HvQMrRv5/WBmfhUjgE8pqy81XTQo5q9aTjBT8PsZFTLUOFQodf8g\ncWBKgSfqD/peLDzKHFXVv3CPyLxkiA2MiUVK35Oad0WUM50/9jWZB7KTVIxs\npQ0AA0xCB3wbrl6WJGxU+CAuoZ+SlWK2T8VWnz5JPbaDyTl6PwyJFYCp5XhN\nveV5IprzGYzfPSG1x+Su02w8JxejvOQ+kQDz+DlCnZRs8SCAksdGZgcoxqXH\ngiHn7pxb3MkFM0lzBRrTdU9VJJM7b12HEm7JfRm+hyvBziL7wkWZmjFGVZ9x\noc5WWbULFp4Al3ZErVzVIr7+Wr+YR+cA/wdMKOyXPwLJrzl4Mz6QfECb09Yi\nZ8lo\r\n=vrnK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGNAWG05CEjtoJwSQczfEuIOqInyaa3/eqafTH3mCtxvAiEAu1S/PF9s5Bq+sICn9AKYa4eguZ89fxFSg0VzTG15sFg="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.13_1610746989691_0.9214472810986478"},"_hasShrinkwrap":false},"3.5.14":{"name":"react-query","version":"3.5.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"78a1e8a37ed80944e60559c0fde9fc6172a77bfe","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.14","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-OqfIifsJln1n7WR594mXkmS9ABFSD2DD8HJcf0DbFdLAjDtimAsbgEizudJ6nTr9c7HMeyjPYt8GzikOxyxSfA==","shasum":"6114df6719ef1672a112ad19bcdf8229edca4870","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.14.tgz","fileCount":175,"unpackedSize":1682075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAg1+CRA9TVsSAnZWagAA6VUP/3bHphD/76G1qCvb7TV4\nAN9h90ObyXVkpyjRB0RaJXPe7s/tAXlDlqsj7qGSmXr6EvF7AUZDYskIR4PG\nehplW7sRJTO+byhYCZNRBwj6uIq6MPYvpUl76PjyAxln0drZV6EGqP6aaekQ\n2TuDILTYE23pkvT4V4ziJfREflAzbyI9GSTogMlpsiOv9XL+EY/JqNYw+825\nurOBxR2Vw3vgcftIRb1q9rvAIU+iK8xD7ZaT2053nXamX4nRlMPmlAZzFfOq\nLhdXgeLzACvi9zRRZoVKt8pka5kPzwZ2EU5ltZN+9WJMWXPs6dc3m10xbYTd\n5vkVK1F8AaQE64Nqj6odFBPTepvBggiYXaYarq/j/wW9z4+siHiwdFItMEXr\njhkfu48AkqHeLCuGfQ92Dl4Q0JkqN5vpCkX2+Z62BmxcmqVhiV7yXL/WFcyi\nPEjZ6w4lve2fyEz973wFjDVyDy5epzT26pS++IgmTsYM0ofUOyhGM8KgMHON\naVYzqD/ZAQWj9LLVv1sVcM5cAn61hX3ZAyYcOuCZrBBm6/ypG+rrLYfzahd+\nRZwsnOdKwWKXXhC0rFJ5hNJ1QzkTNr8twcKtAdFxGnXV029VcX0nPtPc4D30\nJfX+/r0gze8jnTw47A7o34R6jk3t4+hqAjsahpa3pCe8bHbT1LMlgIxENKYI\n16dX\r\n=oCKv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGLXJtaSF+ThaA/IsBVVL8JK0AjIGeD4xcxLkodZjKuSAiB9Cvd14KRie+5MZKKQJpSu8+3/O1/iLpZJz1/y+YKflA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.14_1610747262038_0.849560362801778"},"_hasShrinkwrap":false},"3.5.15":{"name":"react-query","version":"3.5.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"c98968cc841f0538e9e9e7bf7b3a323a2523facb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.15","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-npGgphvqJ2KQ3brsA0ddKjFslLwxDmDlQcABKJv/B3fWdPQuLADVTmiFflF3UHk7yIQRhggNLRgBzgwQt/UYZg==","shasum":"2391e06ce42ad3854eda12c9983e8783efa57b27","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.15.tgz","fileCount":175,"unpackedSize":1682381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAyj7CRA9TVsSAnZWagAARxAP/j1DRDzIcKeg3djvyypD\nOAVurBTH5bTc0wHgYpFYZx0VKVp+QlVAWyVmZYHGkDs5EWAPeTAxqWt9LQsb\n+rQgn/vAQSy4dPskkSYzbXXOuI9MirZFdTWJIpJaYGjGAXZzQVHoMtTkI/8B\nZJWqCvaZNWeAL4nUZOa2VFtALRVpRAc8tP8LzKj/rHFHrQtGP1m+SoPfwRVe\nNeVTX9xU5ZStizgtUE6bfMfkutV0bX5eZiPq7tuZIsITpU/fczzZrBfFmL83\nveicw4EyuJ2LhIdsHqGsmW9h8oMGLDUSePE9byixUUkaQkKkI92YcN9OnOAN\nu3VkxHIeG30mvAhUhFzKeMDQP+b4nFOsSjjdhH/ckXW4oMIh/1FFo0qAxfAA\ngSw9etNWzSY5sQvioKiwWYPRfxmaU2J/CA1xDE8O7ECVEEBKpvUmud862YRk\neJDaQIVg4hjskHABwMksC2+Ja/k2cTQhKnCr677dUybVf/P2UpIWsn16tLKw\nS1P6YF+BwiOkAysTYNgE/4e0MJYwEjHAT/AQuVYRa8seyz/LkHVYe82g//0x\nrKMJGQLCqNe8xaY1rn2Qy2y9ZsCPrfcy92x2tZ2AfFxuha3t6mpJYlKjxvmN\nsrUQ/ttgP3VzM0l4ZPSgjlVvD4I5Dogw0WUwBLp2Z1kBLua9LQFJCRSRNGoj\nik9c\r\n=XHB4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnFpIwAEJHq37O7Pq0dtHVsQ6uiY/v7xuhyrcNn3h33AiAuoKYAIJC2blAH4fC/1JPXTRp0ViEgtnaIX3PAhlCJhA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.15_1610819834932_0.4418921976375594"},"_hasShrinkwrap":false},"3.5.16":{"name":"react-query","version":"3.5.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"eb3d700dc522b86f6e9cc42d08e3b6197766c53b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.5.16","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-zOJimWPC0o2h8fta0uMc+pmFIBgfVkfCvEAeUbrlsbA6m42CFPgyRBJt6kiYjsZ/WRuJl+WIaAh/P27oUXETNw==","shasum":"172771a8cdb83b85c353ac32f1e30bfca27893d7","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.5.16.tgz","fileCount":175,"unpackedSize":1682773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBGJ1CRA9TVsSAnZWagAAIMUQAKS3S2vr4XKWvN9OhPej\niX5kGF/waYd4PDeQIPp9B4E2fsnbB6Omqp5Q2q6gFBZzfmvUV9jIyvloenux\nVKYs+6ZihVGlQtKWJiip2BnicOF/8yvl5VKvDfPNECrl7blFLpYIhliho7kr\nMojb0bbQg5gk30EpU8M1fl8JjNFcBr8rDKsNIlVTlXPVcxDhCsqrxV9skoMw\nXW34pDysgb6BtgPOb30xDwL240mIkR3hSYQWkM8MdObUPQQQx+TthBafuHYL\nlaBWVeIpo9hv9Od2ohJC/6SuUEV0d67aln4VrvlyJFBTRN177ybEe/b1gZQw\nMUpX64xylfUxEFhQ4QaSgwKN6ZE3Pu8B9d8VwJhttwi+j/IxIVFEPbJWV5Ip\n7MkXC8cvEeeLeE7J1W6j1ut3ccTyxbt8NBh8K1UUjO15BKiqG+ILsVcwpG/T\nIqQ5hvn9XasBPr+Huo2cFDbNrGJkBlKwyJXEK0dsqx5vBmM2UIlBbllvKOFf\n0DTOgqA4bMES8kxl191qgvF08oLThOWV2YQlh8WyAFx2ACM1KsenC402vm6O\n533cIqTRh434KwUpnh0M0TWMNKH3U5WrHaZZnFBlRQfppPg2ZHzYXFBKuMaw\npaWyspwimiHIoZCuUvM3yErfEW+pGLKJGfUPfpp2EicpXq3pvM6CRXfvHu7S\niaWs\r\n=LOgh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBw1IAngcdnCtTuMEPIgABzLLMmp5UN51XzRckokZ7pRAiBEOUOaWo0F8O7ruSL5RYWPVB/KzBiHFtarK7Lf5tjcRw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.5.16_1610900084621_0.6431094096831449"},"_hasShrinkwrap":false},"3.6.0":{"name":"react-query","version":"3.6.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"39691a739bff2850974209dbab6078be6c1b04eb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.6.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-39ptLt4qaKO1DE+ta6SpPutweEgDvUQj/KlebC+okJ9Nxbs5ExxKV8RYlLeop6vdDFyiMmwYrt1POiF8oWGh1A==","shasum":"3da307a4a4cb6ea95f9c95b7e50b5281d5244e4d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.6.0.tgz","fileCount":175,"unpackedSize":1696922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCsBqCRA9TVsSAnZWagAAzX8P/2totiUuC88+J9cM3Mst\nsV10EbQDADN7zHzVJGDj3xvJ5/aWiUEaRQh+5m3rLqEYXmlniHJU11AAb67p\n0ySN945FMwNywC6F/jYFU5/Tg8UkZpu3PLi0bDo5+Vwu3XWcK3NN55fozXlo\nuIHD9IoKqfr36hQOY8ea96/kO83ZPE08V0quEoKGXwmLheQeNoddZo/wGoX1\nFJojjVF98LOykRhlg0mUZRbjCQnzfqfCobNdbslZ+tcYK2Mk1A47LH3XrSJd\njhnjjyh6YGutn8SrJMvmHkQKNzu5JwosZTTV6rdMkUEN5T9ZQF42q+5cGJs9\nXLAI6w7q7SjnTiEKCwFnYkvPhJGeVM0ViwWd5iEnJFHkHTQZCTxmSBFYtj0I\nQtKrOigSlDAjpKkucfx73FuJz1aUFsic5eD6JRHiEPV9uhziHVL3w7CZs8H8\nHr55wbvMNP8hZYQrJwcc/5poEZbDiY3m9xpH9BAdmGkRIFeHnF2d4mfasdHl\ngYMozXFFXTybdkspga01+3sRbDvWY5vcLRKHtiJsLLWNLevvsZIuPpPHbzpY\nsySP4Os6EZqbZSv/vBlc2xmjpyvT0cBO4K6ymfbQ9sSwSgiKATW9G/jaJhOS\nc9PPoKxGDWVNEap+FtzP4TwZK7odJ9oWBFqzFPAZAG0UOHTIf26d/QkvU/jA\n2mr/\r\n=/YA7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcaBvEQ3jLmSoV9Qk9oFFOJFIN7u9GztNizDUBYdzk1gIgBdfu59Hotryqnf6EN3QJXMrX+sAnOP96nWIXj32Sr8I="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.6.0_1611317353898_0.27493920181178844"},"_hasShrinkwrap":false},"3.6.1":{"name":"react-query","version":"3.6.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"397d8b71eb4c904783c7091ca94e52de30d7e036","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.6.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-d5UkVA7CtCDfZSgqpOoIvsfSrqlZiXGAMB7d9EOiV0RHlNW2AVTT+cfDJrb047prBm9ktSOLMg48vWEdROyn3g==","shasum":"50c2ab641d4f49213d39aa1953b2acf75e0014fa","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.6.1.tgz","fileCount":175,"unpackedSize":1696151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG6gTCRA9TVsSAnZWagAAS2kP/1JriluknezdZB86eiol\n54tOgP5+AYexxnx8VZCEAP8U9TYlP5IwD1JWWJz+pqXQh87gpIbS9r3rbr94\niMTbwLSvCNyBMKwHGnZjBFTnX4w6312q9IdTG27Wsz/jQhpUEqCnScnc2iGb\n+oU8YMu1QB+h/5uaDhsgrBV2/WLTJtvhpH3F4Ly54F5p6cT8u+p1YHEakKvn\nLkTxphstxjdZS+7BN/uJpI5S/h+xDeFiY6/c+zXBlBjGkighveZlOy1rErAm\nRpuzuWRqhUV0x5nmq9v+VnlfvC+VY4F2vJ5FictVXQKNy0fi+Bd1W9HOBln5\nFKpNb4U2F5BwHhyWRJhgUxF2ZY1+knp/0nd3bR7H1+wzRAogMOtZdAFf2cK8\nCONkwtY+3z3odlVYlbXwBW0K2i68l0+GDNS3QA9u0Nf2QgQMmLLls4Svd5YF\nxRoLNf8uRKYBPIjnyqKAxbLOO93yDwSYjBxvPJBKu+pQJ1RURYcX1vDcrUJK\nknXw1UQOwRTqmZupXQ/7VtWKvS767tUjOoSPSBbTTdEq70eIX2H44QvShqJe\nM5M8VhmbwFBxMWJ5tucfNAW7WmIJJQJBdsN13JxHwDUcTe45JPBmaRiwrkr5\nW0mEGv2XwOCvVlVvxEvOQqsAlAUU+Oi8qN6nm56PCSls5SB9lg0bqzqPihn/\nipbB\r\n=flWD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpCDvtaiveIqa0D1/qk8dHODvxFtFOUUZfh+5La/UdXAiAxf4hYO0135ocxXgrGVIQwZ7PNqypjPBqMG+VNVGpoKg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.6.1_1612425234488_0.9063324757332025"},"_hasShrinkwrap":false},"3.7.0":{"name":"react-query","version":"3.7.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"216453059f77b14fed6db7aeb034335eea4f687a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.7.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-9Tns+ovPQsYDxR75luM8pk8K840cydR6i8ymIYpOrqw4AWX0PHvZfXcxYxwbxdqAmUswWn6m+H14vV2i/wT2vw==","shasum":"f94aac85d24b48e912d0939cd52722002380fa9b","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.7.0.tgz","fileCount":175,"unpackedSize":1696180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG7b1CRA9TVsSAnZWagAAwvYP/Rj9eYKMEQJ5RnBKtrGP\nru6oWim6LdoDdGA+NHBOYCFS1gPRmgnDDhrSHC6u6cFen9545jCXDXC87BpI\ndp2+nBTuSUMyxlghTbJGEl5QDf9BIKIls0dcP6ksDkPeBUhgZuwO1tSyheOS\ngIOdOgYRjUgQEiHfUcJN/cpY3qXCnrYDbxelbqRm5LxKpXOS2H4aVtY7SD5C\n/+wD4fz8gjyItoRC9rAsVHLe61DCkqWSnPBgQPEjdydUomS8WKQWiSS9fx8z\nBDX9yuTaPmV3gV4PNy9kWXjoN3u0efGn7BxpDhMZBDDEL1IBCTGzic2DmMQl\nwSH3AHLH5yzcOeDk2B8cOg8Z1nLb8ExMOeiWW8WwiJL/Xl+U6RxLuyOEzuZ6\nW0YpoK7eR/4udkwQQjNbAs8l+SeSFgCDy64cnB+Ct0aACvoxuABkhbT+c9R4\nOV4B9srJ3U1KJcdk0QWaG/NDjG2pngDWLxa5CD8LuUHeEw/Xdtlwjx2OYGJE\n7WlVxpoG3M54rls5uDqSnpN4x2jiSWxAfOLltCkzruUa0R6t0quIcqIcibGo\nWwjqiikJZfexiEgvF0o566EouKcp/W29m/cAM6PT+e4oITUWdx4TP1ryFfj/\nUy9Dg30hInaIE2hVTC4AiVBqZ7lFOdfnCCWBxLd6WErlOiZvWghgHF3BGI9O\nhekk\r\n=A5ef\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAQJoXTTwWL9oGWLqpZQtFq05HiDwOLED0RlzJqp84BgIhAIoCbX5LvOWkXyFN2qiu4K4FdAJOki9VaAmkeI9z7Up9"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.7.0_1612429044797_0.5228012130105475"},"_hasShrinkwrap":false},"3.7.1":{"name":"react-query","version":"3.7.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"8e24ebdec184996ded8b83bcbdd7d60fcfa480a6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.7.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-n9Ld5UUzCWqqDDPvdRN45tvTYSBjuWHex2ninxIu+tD20pwfHR8QzPnntYPkc/h/wW4Q48m68FgXVi/co/1CKg==","shasum":"cbd15d84507431e8c3b248a1069401cb0feda396","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.7.1.tgz","fileCount":175,"unpackedSize":1696470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG7wzCRA9TVsSAnZWagAA870P/1eGhBnw8oJ5Y0qR7Sjb\nshrwNZcKd5feFDDU5MrtrdUv54NZW/fOaDDB4UmSKN2VCqwMIQc/SpR/vs+H\nZ2NdIPBskuTex3td+GnccaSuZ+QA/BHIfQ5qym8ePbqb+RRXY/9nZ++kUuTm\noVVAAy+pQaQhbOZIo8XBwbYycRgwTX1E2rkcJqb/y/L7YcAoFihDTzme1oT4\nO8BI1Sis2VPurFsb7E57wCM6bgrLgdBvsvQyAcPz6ZuOvEO5FboO1ncCPZ1j\nlMMjwUJDl/hsV43GNM6Sh7GVQ99HlMZqAygP49L0hWN2/7hpwOO/Vow0nqT/\n15B0h9do3jte6kD2yZzD1IR5zd5JEy8bNi5xGiwTQAKuQr0DrfIOWA8J6YQj\n374t0Mt0Ji6iCcz/+3JT5R6xTbIaaUktxk+HE3BEwI9T7htGQp0tqaAz5Fbm\nizeItTVF9aAew4Gs245xWyOLOf11M6QHkprmpXjYIU6zICnTOiaA99wncciL\nVJWaeoZ4RjmLeMTUrpYvNc4LenIHc4UEIfvwk4dIETFfuruGL8+7o3WZh6rR\ncMVsyslDPrAk+yqB7tUf0sKdGw9tDOZhlTWVUTO6ATlYkD2gnQHXEY+ZTg0i\n3wmXF7YvpLXqyuJIbaarKCwFVvS9z9bDRtp6TxtcofFMR3UlluQ47w730ftY\nOsxf\r\n=6HR6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDanF58K+TPutL1cOV/vlP8F/iQupEShE6yo1DLWC1WFQIhAI4zwYmWgpglzY0gofw1dPqT/G5vX36WOmz09Dr48k7t"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.7.1_1612430387096_0.003498831692520188"},"_hasShrinkwrap":false},"3.8.0":{"name":"react-query","version":"3.8.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"2da342cde91537ef6bb8d9edfa8a967be9ef012b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.8.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-F+SuUnfDuW3pZ7426wvNjkbDMQ95p9yJ7edHF2+PSjzaYdjwMMl9gvcGjYBQNVECh3bi9vfPFA2RwWv13BLVwA==","shasum":"3d63ec8ef340a6c0a49179a892de9a8e75cf238e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.8.0.tgz","fileCount":178,"unpackedSize":1712199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHuNKCRA9TVsSAnZWagAATTsP/0kkI7kMfixFxJ3ibZCp\nMd6vb41jTHpVIFAnbe89SfvzHpPmU1mfwWQ/9y9rO/PWRdCYitqE6eKzuJte\ndOo+8JUmHiGUTpNvVaYHeSEV+vQWYp6Pl68OgAFoijy7FCAAhYuPWZ0WwvNP\nRunVZcdJZxAiMZK7n5NvnGm6Aj/8cSKN3VUuIFkZpPPSxsL3AlBFhosaGbpo\nPwjToCIVUnNprkCts+RTIoi0MAV2+zpkoiBrHs/Ys6ojQCzjonbZ+xeQbF5w\nrH5eeiIWUHs5QwMj3SpEdVksGWF7wQg1L0LR2mswbWIImlfWbEUCuc7T41Wb\noOBDX4lVOrZhjvN903MzYCdWmjIZLqzRugTd9KYE6jSUomqlrPfCbtzCHGEU\nVXsbTVY21ljOXXECqVGvyRv0HlCNWEtPaTKs6q85SFiu16WMgvDclfwI7yPN\nlUAAddY/nRb0U1cdqys6Ssy4iMzRSUiKZlaZHFrzg0zmudL++u+m5EhVX3DM\n9yEs/jJZBWAsHupiuOOJuaxrQIIYQg63oC2NV/QUJxxw+U4Pt00KL7TIGGvO\n+GMk4UIR24GJCCyO/fqvkAO/M5HSt4wxfKeYxi3Ek62Rk+A1cJbR0r3nGUfl\n2eb4J+tIOWILc3jIXz29yO/xA6WJTh3333PBaViPqb7mVequdeJfkLY3R17r\nkS4b\r\n=gCFl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoo6byEdd961hBIsn+yKXqpURLL9i3z/htypoEDfAeDAiBBGdzQtBk1GAPzYTtjBFwJ2yu2i5X+skz4pMXnJvW6kA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.8.0_1612637002059_0.05613781242585425"},"_hasShrinkwrap":false},"3.8.1":{"name":"react-query","version":"3.8.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"0b8c55c3a6f4a9e12a33ec828bc415c77679cf8b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.8.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-hXGqWTBuirKQaD47B9O71jN/qKXLh9RlREuuyeJi0Y0AMLaEt5uA6bLxwJ4M8VYaSRe+hLzMlbvTl7UpeovQHA==","shasum":"c64f8cd27220058cd22a4aa69873c4d9b41f5cf6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.8.1.tgz","fileCount":178,"unpackedSize":1713223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHuujCRA9TVsSAnZWagAAzEkP/iOf9I4nNGU3dNbz47UI\nNxG7oRBFG40i2n+v0gajQCu/mYRuSdV86FxTFxg6VTQKsSC38lqLX5E2Qg3K\naAicSIAOv5RMJQm/nso+138sYCzFFgmn7oTRsxHe83A+6yYuJZf0VGdJii8i\ngbSI1kS/+D9YlRH/V7HQPIN8eroSZ0/LcOkHtf+1DuWtZSyYboq+dcM1oveE\nf+DosGwZsqRMoRj3bGTkjKGN1+Ql8WNniGMWrBlcgSavQcUfGTVFA/2paEYH\njbk8HUEZVlQBo1pHCLlhbyCoQC5Wpvu/wgxa6UfwHhLLtOov2HxqGM2vH8f9\ndq4+I82nNVFc/ne209FnPep42zXdSW69ZtvHxzV8HSVG5ECDiGFqQpR++UC0\nNtaLKZmz4tZfozuf0uQA1AHrNRVymnoFTLZP+aL/91c9pt5h3cmtT3xRGxvI\nnYE0e/qn+yMDI03x4HRLO7/bqxtex4LjipPU25g4ydC3Ujha53fhzCIO5+yk\nXnWHBHhBd6RTn5EKDopEnLebgeZ4cHyzmXIIUy8guU1TLMLb5G9qbMMDFOqw\nshseJjo3j8ekThvlByWWX/8yDtf4cYhOANFxTFML10dK4/TuBGsZ3jTOQaI5\nZc/BAu0B0kMZFiRk3e8gtmOXsVVnu+mlgQCc4az8/Y6eriVI5fs65gHlMh2Q\nmlZd\r\n=tsZQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRqyl7sSOjy1rNSk2HqS4PycfT+5cJi1PLHhCl/j9EZwIgZGGVJJ00hGfJh2BLoV3TsPO9pQiqpKUT17zhxiNWtjY="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.8.1_1612639138924_0.2413850459128033"},"_hasShrinkwrap":false},"3.8.2":{"name":"react-query","version":"3.8.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"3d2806edb43c557be201e214edb0d503be3159f9","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.8.2","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-Ha8+WZLIHOUkKhqE4+2RZZB03WvEWmNhN4WIIw3zWVCtR7blo2n2TXtu+d3YhaY1o6dt+sHT+J+zNV8IzR583w==","shasum":"e2dac76b5d9b3465d854f4ca040a35ba4bcae1ae","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.8.2.tgz","fileCount":178,"unpackedSize":1714275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgH/CACRA9TVsSAnZWagAAjvgP/jsyCplqjmYALwNNTkME\nvJXLWv2jeeKNDGb8DMTXg8ehO6wGPv6MpQdQ2yCZmWoLYjvyG1V+JR/CP0a5\n1PjVSUKKiJA/yOvM/z9qr4O7ddml+dY7Bw8scfL6G8KQgZOf9Kasi01u7FGp\nQv546+PLDS2ob41k36EsUiTdH4mNweS/RUlp0iIm0oH83ZJxWL5IkSNV7EMh\nrvpX0uGbQsYdnGvRUd6/L0saQCpYSMcPS5ndcF74v2Nn3V2soXcjbnkpJx5u\nk6tidyFALobRdh1cZfEslQjbn4yR38qfBMuAyEu6HbUQ9uxYNkP5iPwI4dWg\n4dAszbrRpEHrh385hHIxYj15kE+U5tTXSyBDv6aisvBTVtpv6A5mgFh9TvzD\nLilGt42W+8TdWqyAvPGFbjsFqcYzrwDI+Pl3aSsgeF2xFhKOZiQoAocwupoD\nPv2XUwKuB/fBBveHlRe9c8Q2oTIWSxMucampZGwitxlWXrzBhR7KMhZ8bXVq\nNM2iqPrsbmdORcXpBm9p8GQMBUGjdfihtrX4K0UExt7y6JGJXqjaSB11W8QA\nZzl/qh8/IPZ47pUYY96MPjlxCZrKxSquelxro9a83ERwFQ3AW4aGAOdId4+K\nxQ9WpTPST89TmQLNYr462G5BNT36jX89TDWp/FAoFkbePWaG/U486HrYFcJ3\nY3u5\r\n=rIMn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD92vrczOhxfBXBN+TMR6kzbAVBnnwZoZykH6vDyrpQjQIhAJq2s0eQNjL3vJmgRCV/g8j6hAOX61uyzhqyG73iry/2"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.8.2_1612705919892_0.9673671908250638"},"_hasShrinkwrap":false},"3.8.3":{"name":"react-query","version":"3.8.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"f65623f18ecb5714632e5eb198013e8a379c7cc9","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.8.3","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-hLnTC/pZLrc6KxmGJ3O0w1qATjRIOpEFTG4RbHIWcN/xXsfogsINzSppFSknBAJjxBxylobDkyi8Z5c90BeI8Q==","shasum":"1310e710537c24483e4d167c4e84861771345281","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.8.3.tgz","fileCount":178,"unpackedSize":1718774,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJTQZCRA9TVsSAnZWagAAXGoP/RcodoiAS7lMf/VxRcz8\nUaGKCssPWdSOyoY2IeIZ1sTxvxLkU8uoqSipsQhtcLf+Q2KImWLVvYLanIFu\nf3cCQ0oL2DlJeqbEUes2uNwqwdpOU6MpAWK177miew+IXamXmRdlxceRAF2A\nYlgudeKqVdp8uRb70e1NvANO0UqONsTlZUo0KUFaIVmmMN81ugF+ZNhucdVS\nu+mkeSEE7NcJDvSc5vMkzU9aoLQqZx09kLiyuasemvLmNh1YXsQmaNQD5MSb\nHGlv3yv/iL5OUAFZGnV2FA386suWG747VSoH/mZTO1WOYwKwMEOofdPsfZm3\n94JSQMLkDiprQvnhyFZtUA+ULjFva31KSgwWzwO61SzSds4HMHKGF0rL7Tk5\nPZgqaQ4lXV7mTVrXSH5LQOL0zlhYBAKLxXcK9ErnpMPIZBjmchpCbfAw7Ga3\nvp54deDa/Mai5grGx0fGhYZnN7gyP5RP3q1aww8viKJfnc8fVwVgmEvA1B3M\nO9BGmFpHn5fVTW2aOU6gJO+sI+aPzy8MUnWMC/T90XoLrYJspVFH4nmf8kaV\ncavtLf/8AIX0yA6eEVTKnjMzIlSypLDklrHY94Mwzd4C7Vuq1yCKTg0mkq/6\nDM7VWdshFi+dSyRBAkYbCd22HIW2gL9p6mBE/slkfcUG6tFLmr3rwiLIJ7jj\ntPiS\r\n=sZSr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5mjBfd0e6tfjsCkvNzq7oB4G8MW1IgBASYEKGyBBQ1AIhAKJ/YHZIb4S0bJLCcCU30GE1Xb5XRs2gmwZ2EJLdu0zd"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.8.3_1613050904788_0.8449233151914894"},"_hasShrinkwrap":false},"3.9.0":{"name":"react-query","version":"3.9.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"f9f9cce852740e170974e1436d3112ce50a648ea","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-/v4EIAK/pKU6fJM3s9CBsFcs0adr+IL9qNlbsdkucwkA65A7CUK2yW7Q82Yr2hXA2rhMARjwC8wuJjQjJbs5iA==","shasum":"599e22b2ca65122829be463728f1a9217b3f4d07","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.0.tgz","fileCount":175,"unpackedSize":1740826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJumoCRA9TVsSAnZWagAAcrAP/2rS2BPI/RPOEoP0M9hF\nunWMOEmkn8bDqRgKfvLNyz/BhAvEu6B+o9XRrlSJl++BeQhkKYz/Sslr428T\n7QoXqp1hS/YUcrT/cYRp0zuhGDVhiiCDO20xYukJSxnKLFM6go+b3o83RtuG\nPfCXbwOR4EwcFAPMUbFZaMondzU+VqkqT9EL+Npj1ajFrLRcLYgy9Subqwkr\nQubfBn+d4UXIC1WPuAPCymbDyfi+NpAVHpw0JrfrA16hz6mnVyhkCaomACZI\nkSxXuQ8HW06nhPob6hrIjWllYPZhiovxkEkWKAacHxYCAtezUCvX3VEed0iC\nKJzcX8kqNgWlLUUgAM6vSRRMc8HWzEHsxzCX/ljdqC+me4XKHZTfuRoXPwfB\nu9qseSHq9m7kGZBSBEZRTIVMT6CfPy3RniYIK29DIzPgDwYzM+tq9OzpB+F8\nyojL8sZxQiGv4lofjgCt0BKPVcol8edK/DlCkU2hnTxQofJ9AHqbRjOY09nx\nGb43b7/ahHWxKd+fBlPHdE09yhCEZp2vveBDRIqmp+YC8CrzGZsMiNFEvwv9\nUNU0Uhe+UJAZIGU8l2Bi4ObA89+m19CMRlwCkaagbK7669tA1kRNcgWtHmH0\nHLoLwuDrmk6xW3CGpyTwPi4xnE7zK56ZWWg9bLKjrj096R+k/hviOgzQd9vD\nk2je\r\n=J0Uv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaUa7hWARULn7YjIHCujVnGI1jJDEYRfV+P2lfDrWuRAIgfNmP8kXmzShnxhWiC68YnLUqcZV30/IB7aBUwyQbNEA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.0_1613162919414_0.4298008414720045"},"_hasShrinkwrap":false},"3.9.1":{"name":"react-query","version":"3.9.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","typescript":"^4.1.2"},"gitHead":"abd7f86ed1750a4716740d60078b18a91840e82d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-ED5rShb2fs4y4TkBlEMkFZtDFdqo2p8umCmOyFqTl3q+ki1JLsM9N8z8SkZ1p/dopTeLZfwuTycUwuhBhpAPhA==","shasum":"ad8a2a6612a2388853706c69ab2b133b9d081592","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.1.tgz","fileCount":175,"unpackedSize":1741051,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJwkWCRA9TVsSAnZWagAA4JIP/igwwE6JNDxYhA67Ydcm\nMglAmWA7BQcY4FwqvGRqVMePdK2Wdrjr8YB8USRSKOcWwDo0KBYpgNSTRS1S\n4KWtLWe59tlbiaDG+IGec0jyF8MYriwBM5WIvLSBcsdrxhY/ays1VkWxGIHQ\nRldp5UTL0m8jMttIzYT/9/L4JZ+hFbTHHjkTIo1d1vT7Bx3DvouIGSDH7AD8\n60uDMGXV+DiWtrNSEo5r0YU0UHFiCxmRDJHnfecD/9wIkXBokm9OKRgWbufc\nKFNI7DQ2jQKuzEzZD0XiQs8rTvRhQeJlb9Z/r80i5aHcJjsl6K8MAa/zfEuX\n7ZDh6wwbYU8WF0wfv3E9dly0qesPZoIz/RTSRgXAnjJRixU8ztKgx6LF8+CJ\nV8jlWBMTxNJ5XLWg32diI5a1ICTTxRzZqK9Bita0Jnvg/h6YZ9owkKvKmL7a\n7mriH5rOht58qTFGgZNVJV8HarQygP6qajn88lISkDw3R/95OmvUQtcGVbLF\n24JYs6xWEfUuiGWkYDn/oNa9K1iG3Ym0uzbRJAwXzvxgkmGZrTwiFgVZXF9H\nKut9P5tHIRZLNhEEaPvHei8JG/1sR6kbTmxHCgZG0Me1LIf19dUIIhAG386i\n1sy3THYWvoT3DaZnVmRr5CBwI+0FLcQ2T7q7XCAc82Fn9/Ssh+TEN4rDdqH7\nh0eF\r\n=7e4j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHa4uaHEFLgB0uOMEI7+fY2pnQu5sKOeDjWd1Slv7nbmAiEAgTmEOodUPeHf3FTHyyWibFcXjANXQ8OMx63jGyuGaJA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.1_1613170966026_0.7040504316582927"},"_hasShrinkwrap":false},"3.9.2":{"name":"react-query","version":"3.9.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"131eb29a82202e078c43c50ddfa4f317b1ed545a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.2","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-zIY7ePPTjP1Eaai3Cv3LNMhJFKqNGb+QFVi1kQ2cRM754lJ6b500bm6rFP3ZY+7BVqFo3R4atU4GHaNtPt2E5w==","shasum":"1cd6797d64b2d05b656826c32fcca8abfffbc786","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.2.tgz","fileCount":183,"unpackedSize":1794232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJxXdCRA9TVsSAnZWagAAFCUP/A+DQ58CjsXkpsp+NkRd\nfUbU02WzLloVfKvaG/WZAzVEfe1BWXO1T63EfXbg+qiFD5SAMuZ7uoWkrSPP\nfjwYOeYzQGl03RcPoFSbJ5EKwYueEpJzDtaOCanb6LIioaNZRyNyQy9Q+J9b\nlgt6g7VHL9MJZ50fli0ksVslkbmbe2lKwYd/2NKCULRsutMoNtch9k5Lj1k4\ngwIqJp0lAwRUYyc21YeXsddxotV4aYrv8ahkDs+EsR6OPxV3DoamjUVhCtHu\nu0I8aL9X5Oh0NHrliUlzs3f79aE+TdaKuLp96bNjQXp19TffH/L630XBtlmL\nfkU2ieCxTY/6iy5ebi9MPpZCptXi498Ry7l9l/Gb2Tshy6Cp8GH5JMyy7Spx\nzqoINoj/4U4Ul5FeYuiV+1P0LVDs955oekYtLJSKTe9ekNjfRLF7H/oxaRmu\n4F1SoKGEHbM7pSJUnNc6ept1yut0YKjaJ2BLrI9gcboCpK3u1NUTrObNoUTb\nuexQJmCyKXNed39cQWrRvyRh+4By91vq1tojRBLpiLOD39NTfbpR24hPcfw6\ngLi4OqyIl0xi+dnvaCfB8LcvlXMlBZ00z2BeavPsl0OD10ZeByItjY0CkM0P\nW7XebjzDLavYtQH3zo04PRf/m+UxZhprOAXXALAiyo0m7d5kclrSWryqy8Xm\nI7K1\r\n=KMI2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHjz8qbMoBxO/l2wAOfrYNUWI9wpJtnMvd2wThylF//cAiEAvFim4TQku0Ta8BERSrKoRZ4XrZsUKvrJeauK1kjsmng="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.2_1613174236300_0.6653023993242346"},"_hasShrinkwrap":false},"3.9.3":{"name":"react-query","version":"3.9.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"dbd3b616fa80e64e2de0cb444be2398a1f8fef38","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.3","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-DQ6dZuoVzPSVrMDqnw+zwFuDHVivFrEt22LN5FhXsvqVN1ikKk3Seim3NYwpMD77ljeb3sS0k9UbRyYdAS6Vwg==","shasum":"7a048d45fdca9eea52fbf69b0ab5fafe38e6ae14","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.3.tgz","fileCount":183,"unpackedSize":1793606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKAOZCRA9TVsSAnZWagAA5cYQAJUt2uRfyndhFcc+Wwdk\ny2WdoIGwLjlKytBelMbV59MxjUb4WD3i1daN5LwGaeaMemmO9luzdEk1DIZw\nv5C3wnHxb4u62XKXGeVvHM+S9Pt2uElPEofKK3D5sBaIarVFfSrXhY9gSvgd\noVAKvpimN9U9JKNWOD+76bmFN7bNZT117ttxlyvDdnP1MHc8efbSGAxgZ3Ef\nEZ9dFQ+v5iqSO7xGpVV43fETZBh1ckSDSUX8XRD7ul5uGdRV39ovzv7/B/D9\nVkyMNg/KYt9QBWEA49X5oT3y1vH33t53+5+NQ6q1R0HLB3WtXRLNHPV2WRbv\nukkwCRj9VPRTl9C/Rhv0qCEvcwRdtx0PbW8dupGjFHOxYliCHHltl8A3Ktbg\nTBqBpnqp4HABP3CrXrySnZ4dBOaKkFYNmsb+bXk3rUPau88uuDozZWfrjO18\nHCf6pYkhK9R43Wvuco8nhd1TEcvwASON2S9kpsTzu64GFRnDQ68LeYjd89T5\n2diL23xfQWf8LvDE7vbgTekOEvL8mHcKIndJWL/0GHuVywlF1IEhzQVsJvwy\nPXFlQwCXHCqG5oDZiQpJJvoJA4Xo7UDdqihejd+gkSng2pOR2OBLgoFvZNky\n1xTNjPpAQPFwlFD6NM4FcXumQIrV5OFQ3k0Ac6pKb2pCJvS9n8rdgQGZP3Rn\nhHHQ\r\n=c9wA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsDVZy1az03lwrmqbcz/fAT+cNAZTyqIGe7Bp4GDFumQIhAPruxMXMYMm6WQKkvBIIrhX53XIKMu0YrXOqKBuDN439"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.3_1613235095584_0.7590928274791773"},"_hasShrinkwrap":false},"3.9.4":{"name":"react-query","version":"3.9.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"7906ce786fcac8bae63a4eb6bbcba514df677ccb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.4","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-KTdxmCMMEUqvC3WQCwAeRLWyR5wx3uV5vKSOEaOvxBntZmYElIM3vADZc5vDz7d3C575xaWHZ8GFemU5wBkZ8Q==","shasum":"2e821ddfe303c7eadbac42679e6a201010c155ac","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.4.tgz","fileCount":183,"unpackedSize":1793578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKNXOCRA9TVsSAnZWagAA0RQQAIyjofRm2gUv9qb9soaX\ncMt7LM7PTkhAnb/FQ/V4P69zFRWVC6DN+LxjzyzDcX2hn7A/NnJM1JFspxIL\nwK36mnNBGjtuot1x1BqU5ThfjbFDkTMitLAM4XffTovb6sD0PqhZ7XcCzYmH\nj5/2KuoVzI74A65Meqho70qaZWLAC43QfaEdPtikj4NofBzVsz6dNsZ8eeqb\ncsltS6VIrzen3yyk0rNKf6kMLYFjrmXLBzTTcUqOEniAh7f2ZYqLQZOybt1g\n7XXSZ8IJ39UdRQtx5BfzzJsYQ8JBRnN96ug3QTkwqhS7vXdFhZMNB3hzu0tk\nBOOai2YEh0a69kq1NIoZmGuMf3US51z2hbfbBk7bCGTCS1+CWedb+SdiApoo\nlBNfiMh9/G0iiLEkTV+aiP+8EFqpboEaQ+546kloUTEAGGFZMm5vsCpRPKoi\nVo0jAfXOoo+3WMetPlO5uUg5SmsVirIhr4a2c9yEP7B7MhWIlFvP8HAz5BG2\n/XtHfDdJpNklX82GjcYAnKfn/ld9/3RKnrHLWqnqt9U7zjypIld0owBZYT+L\ns3/5Qnzyhr+rZN4FuPT9mqnNlhpQtV8aQ54wf8iQx+7JGYWPsJKnRC0JAA+i\n199LbS0XZEX+NpYB/attPdwNF/R0qWu/dYjCMs+l5qP9CZvfq3iIVC+K4yw4\nfCMp\r\n=1TTI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLxwwN4dDr1HGwPAqZyANP8Zk+1sgCUg/W9CWlCPlW/QIhAOu7DH6pkx6uAR2MlAEpPItrj4p2pErwrpsZNrZN6gOG"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.4_1613288910019_0.4930791416475515"},"_hasShrinkwrap":false},"3.9.5":{"name":"react-query","version":"3.9.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"b124ca8a42fd5fac3a328ec44353c41e3a65dacc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.5","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-GmMTg2BqQyP7P4dS+k1qcv6FPRNj+/PI2+eKn4pHjuq0YVZTC3yN9NXaSlKMxfwy8yNXmiLKsZ5vP/0z3kMt3w==","shasum":"d0b00cc05397aa78dc65f5839826cc50b80b6e26","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.5.tgz","fileCount":183,"unpackedSize":1791818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKSYECRA9TVsSAnZWagAATGQP/iclwhqHeAEgf7PvwWOU\nLPfiOK+YScTAl3mh34d+uQ/QrD7K8zdp8/cW7f5RH8HrsMUEKc2VdYKYbXwk\n3izibmYLk+WrGHk2BgmQqDgBB2v+dJuPC7pOWOVy0HlPtswtojBC//Q3VEd7\n8bSuoWjeZ3EWA4N3+s3L5lhl6T2ShEoVt/AldHYXbFn/IvzDi785OS46zcyQ\n4nCKOzNw4krr14uLgbPDtb5n0+WKWCR8DFxuJZojWIXRSDJpZXnr8CXSm8eq\nMWt/mXuaRVZpllvzMs3FAmMPAMLLP9TPjhU9ohist5vVyn3rQSrXNfHszR12\n/BTSgSHgLlNi+GVr9i30iAJGIM6CaDbPHkufBwU6x1nijn4XExneXAQUbjVV\nrrJ3KTda5QBIm6dp/Gio8VoDFHRuakqHOGAMYvmm/tiYpdA8Ep5VRKBiGFz4\n0bj/2MiyPABQr9oFOLgCvwVu9aIAIeFvJUNorjtDgR1eDVxokkMB8H7iVIHe\nGNUmGf1n9gDuBpu99LFGJhNoisbeoJF4jVjUcv+fmHvFrhwkCwEkwqLF+qrt\n//tbgRQIhJqk/jV8chB41kb00F+ltMqNhYvnXO+re/ILpp2iDfp1jGJqu8Bu\nKww8V35YcSyzxyvmUzkj/0k1pMQ09ubQhCNCQ28KaVG4QTKvcpL3Usrp3Z7N\njNUE\r\n=MTfT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDudOvmg9s9ADGuIcRNg59eJws94gLKJ9IEi1Fwwmk9zgIgT9qfq0NEUql3Nrq6kwW7UNyVkwrfRpAlvxjNnTRSfQw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.5_1613309443760_0.6360541506714175"},"_hasShrinkwrap":false},"3.9.6":{"name":"react-query","version":"3.9.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"8a613165fc7dbc5213f61ad75f29ba54d248a0df","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.6","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-EA0HDhryEYSsiVBkCtqpPAnKbIayUqJNz2eImEPgyVaaUxQhG53rnruknt4E1l3bL3nj+RbXFf7zUV5Q6kJgBw==","shasum":"59d5fb162009be82586ad697a62091d2fd3a62a4","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.6.tgz","fileCount":183,"unpackedSize":1796680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKUH3CRA9TVsSAnZWagAAvWYP/3YJbau/7WBDKEeueblK\n+qZkGZo40cKWYJpc1cSWjVz4ChDXjQN2Tmc6ROMT1n70vTN8HvWAvs4JYH47\n06SCgIQJK/TQVkfEX6ZsL5nIn3GTqeRRRxXkB4D0FW4WUZ4D5M6L5UkweUJ0\nyCY1K2JbbKy0E8J7QQ1YJAHgTEFBCSSMzXbRvo8DVeLuvHDeYt/V2uLi+yT4\nAaYzsZWjUoTxLNz1OjRYRilZOdAplGWh96iVTKTYp6b2AOBq8p51Tw/nwr5b\n3pLohH7xsw3BxiAviQVqNDW4vliMocOHDaAZ6fe6+QzBEhzDDmJgOqu6j+eE\nAtlXJ3ztmP8PqjdzTCoVRweAT/Lby2OSgKT7ETyZAVR11+Hg3fE4BCdRO9mQ\n+OoR2XQd76t51EisPP8IPEc/ROFNX2Pp8+pJcrqISqvGGWlQf7ed3E3su0Q9\njYWE3Fgt/kZMVGvhohrAao8Q95/qbDpo6djga+QLHfrDUB9I3qNE1fiSpHdv\na2Z3hI3Ozi+N01ea38U3OmNybXt7+FcDNFkq+fNVRfoBVfvjQJYs3TXgzvTG\nQ/jB6sDaU/E/+oPJr/rKpqgVYLOEvCskStXLEDxq0N9kjQqjjyK/pjGckN4n\nrujMTqV2Uq1WTgHgV7AWyyK5lGW//CLJtOq84zK3LLRx2SP5iUUKyB+c6SJn\nSUpO\r\n=R4FS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4rWqedNnuIfONdpguVARgWXzJeNR6VUby3NqzaMkEtgIhAMxWih2FLqE4DOU6iFCD7RSitzsab/KAzlifrZA5mXU7"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.6_1613316599126_0.22199680349647277"},"_hasShrinkwrap":false},"3.9.7":{"name":"react-query","version":"3.9.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"20b653f6d253128256ab11be52de44fa79b218ef","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.7","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-vpQgRFOljd7Lr1wL8hOwxWzb7awLIjaeqaq6DJ1fzA8N9mK1fAkK+UVrt8WaXJGBfz7JEnfCiXuENQspk0N7Sw==","shasum":"324c697f418827c129c8c126d233c6052bb1e35e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.7.tgz","fileCount":183,"unpackedSize":1800927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK2mLCRA9TVsSAnZWagAA5QEQAIFFPrbYhmsz/FAanUHe\njUPqJPHXfEVgj1F3hMLC+M3sqhDQHeWsDEgNO7lWtYCH+ivUb7RTAEDIkfIA\nHdciTAPl2mU3WRwc/T8lINNRLY1VqD15ROw7oiR/6vTAjp8KhO2WVFRxkQIc\nWEZK5V73QckMxPNmi0jtyGfSnLnTD92oC6bjiNE7arP2oRw3FPAeRx3sUJ8v\nSbWsJ+SEWTCtx0h2yUvMFcrEWfgirTwUbR7OcXyii6GNes7RyNHzLwN68+wB\nhFDL17BNgdWH5rFbYAtHEZqE9BSq6q85YLMNZy78kLhBWCR2tFqi7G/CBur7\nRIzMcySO+H4S10hNtXZpQZWca5eAUWD0nlR6IpjmD2KaADEMquKfTTsEShJ5\nfC5gZWyN3sUMxOaNtd4XZCj6Paq7QnbvgTompW6La814+AaVISUlK9IEu9AV\nrH99EyH/EoGLL7QEBerP/gh77aCs8OXXL+i0DUpq41UNnvFSrdbbf5HVaW3N\nlwWqMNSNDpCRaX841zkc86fFZUFJZ0cq9WluMRa1yaiUhR/61ZtS538PWlFh\nFi61fkvu9Pl3uVCAfy4g5/piAMXmks7cpd3hZfVXoqX7th7QE6wb74WIOqcV\nI8NUPf3k0qm+9cFVlR1yUtmwnjj3/u31zxV9XPuW+0IPfVrTZ2ka4MXZwQeu\n0eKi\r\n=t+Ux\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxzcjyQfPUtyQ9DC2giw0KfXETPRd7Fzy/7s0RoAXFUAiAONDgvIBk2z5eiyeTcADNj65346yzfQxegbNqFUSkJWg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.7_1613457802813_0.2418150073528047"},"_hasShrinkwrap":false},"3.9.8":{"name":"react-query","version":"3.9.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"7e98e1ca3c4f4e90a682cc3d26857339b8d72037","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.8","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-cO3DdlHFSE/FDeIhrYVfYaUPm7ElmMW/3sp1QaMSP/aiGfsM62a2gRwd34YVA4dBchNk22L9yu2fZ657A6cdvA==","shasum":"b6345af86f81b342eb228b11d2415a7a04ca5ada","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.8.tgz","fileCount":183,"unpackedSize":1798934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLFtmCRA9TVsSAnZWagAAORwQAJAM+9UXw78UCv34NUKZ\nMUdL4oCqi7yAm6vvvdqGj4+dz80tYoRRl8FapGF+Cu1/R1wojjmrD99wsy5p\ncpOQJVU0YYWobicEryK+rjaYof0wHAhQBOkDHLu9HyldttgYtDG4G9MN553X\nTrCyw8eZIoukwZ+T9LwhtWDaV26cbvHt7uU22/C+By5d03sy3IViWeEbmwXZ\n7yEVzCcBbjKaU/ooKbQ+rKA25I+n1DGOnvi+BN2vtIo2N050l/hmxCrhJ8eu\nkkGxn1vPPqWB2ZpiKQvFkDHFBbcTwTMY5ugULJ2ESg7rB06ewgJyAVfOQ1Rj\nYf2bVO7/ec1+Oyae7QjZ9p+5HgUZSHxx2zVub40ADr0ndPh6gy+KgasgPZnz\nzIQX1MeqtUKtbCgpgsUU5kcLk7RjSVmKawd+HkLsR8Jp1kCjosy9lHHqYVwB\n1Rr7UPbOxn6ToToj+3Ptf00Qrkk++pClrPZ258+s4KTCL+FC1OTzq4lH/Zrx\nS+QDZ9EYCfLk9eKCXMxV8l3m+rhzFqescPGGNVaha9x+Idfj/ySaL1ETdIPA\nMWj6gmY6rLUUWCEbtbGftJLvNEhB3PPZi798lMvCI+6UXt5SuPXrdXm4/ZZC\nCkozwPlbUoKOGE6+2WJ4dAYNOEAEucKCEiAK7IFexViUAlVSzddxVHTomCGj\n1KxQ\r\n=X8i2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAnGEtQqR3fO61Dxd26X66PsnapTuThpafX4YO3ZePTbAiEAztdKtwIHLUdnPAyyE7030ezrPs+ZnCMmDpGln2m8g6g="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.8_1613519717672_0.0142639775949025"},"_hasShrinkwrap":false},"3.9.9":{"name":"react-query","version":"3.9.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"ca5687728060c6faebc0bb6c3af3824e836ad004","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.9.9","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-ojsIV2mqX2AuuEJcqKKcmi9UIm+RerIw923+2w2ezp0XOMhikbcj36XNtNJRL+5UIim7YLS1EzlJ+g/VIffAAg==","shasum":"23f95d49be83602decb9aa11c8036bff237bca5d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.9.9.tgz","fileCount":183,"unpackedSize":1798618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgM8u9CRA9TVsSAnZWagAA8o8P/ipNZqkFaBMJbOVENWDR\nHKpog/HPfoiMtvgDNd0rNTwA6W/MMC/1GcQQ0tJzxCUFnr8HWthJozJXbGYY\n5MI7ucbXz0K4ffL3resS3z8yVajk3C8Frnp8OVi5kCYsVs9hRVMXA0V1FXh8\n3Ck54KgRGvD9d61xvCxUj9mEJhnovQMXX1seJ5Obyg8jYcH7pIgMJ/W0bY8q\nLZQarnzhL9hRqW2sxvigbNDaXXgtxDldT/ShdqWwZSpGM8cmx5SGIuV34ofV\neg5y2zq+SGODllfszhhNaaiicQw3yR36T4y3g1wZhJmgM/VTEg/036Dl/gek\nZDKMSHaUFDHhkqWdMf/+QqukpvcuMQAH+TeMNi8GZV73tqoVtQozDFmZSW3Y\nsYNU/ml64UmpUBTHmo61mzFA377QlpF2I6b3KorAGDZYc7lAxImS57nRi470\nv8c8jI7fPK/IYp5Tl+jIs/XdkbwRO/TPGAkDN5IhO3zibYT+RtDLjkFUf3bq\nd/7oilOYZRqk1qSpNzca0BwOneblnuGdWZUm/3geSJBu9b76C0tUbuEix5dA\n3Ykqe2IUPuZnTiLetkwFkUW8wPYPg5uwlI4O5Wy4vkGN3Sfm2MSWzJkooVeQ\ndEdjdBp9r0uMvXkTHg2+TiZ3NlDHppdXgv9vTcAvsQiKt9Y/wzqtmyGrMfOg\n9d61\r\n=aH9Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDya1C/YwbFPg8s2Id8l4GFV4o2RftjcFkqPQ2WHJqI6wIhAL6DvojZRzFhtxoX3gmP0zEDS3otamQrpJFJabEu02jE"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.9.9_1614007228343_0.41882009974175194"},"_hasShrinkwrap":false},"3.10.0":{"name":"react-query","version":"3.10.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"9fad89220c68b3f9815cfdae15af9ef095b926fc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.10.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-f/V5uef3pqZrcAqr0cm0O7xLHq/OMC6aq4w6XkTYC7Dzs4whbxMnMgv+K2Znp5FuYr6dzgyo7UaBzMmcyryThA==","shasum":"dc9448f90b013ed19cf3e409b05f662b321aa123","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.10.0.tgz","fileCount":183,"unpackedSize":1808287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNIHmCRA9TVsSAnZWagAA3cMQAKA7r45/Xx/DgH2zLE+r\niIGs+HTYqZkSR69cIsMyoSNR7ALEmDP2/EWFc174ESxhHk4meLaD5NobdRRJ\n37mIINQLzCV7ncFakkT5V0K+oz/CgHSQYrvrlLIgwwkh9KK1KTtJIFIUoE1K\nQhRvotbCu8XGNfRyAuR2W0XDPjlwQTzIf8FDJbcL5ptrEJc3rZpqQwyYFZRH\nGFdfGFry2+E8p/imgZWKEkr5CBCqiRRuKj+pCZ3wGd6E6G7iDZBzVyWkPnV4\n3nVWBI94n7qYEPoA6ijy4/mAb2zdDCxeYGaLBZr6CJ1Avtl1clHy3uXeQmyD\n/6erJ0XzPSno2JGxltQsNoFTSGIsB6d57W2RIzkRjxFoIlsfBI19LO6/ZyVR\nGLi/BfnCBeBVOd3I0no2QeYr9kpubzl3jX3eYEWMmK2IHcMC5bFtjraktxZR\nKawsjYSl5jEkRMUcZMFq2PsJ2cZXRuCxJHHNFScXP6AoW5JM+5xZ6ajSyiaN\nL5p021VMw32yOwb9aOLsuKoSJrFIg048GZ21idWOMrDP0NwzPGuFwEMra061\nOcIE5wHmlOTyVpJwicxdF2hC/tMzdrPBVw8NlwB0bX0jZ/EBLaG2VnwOeekp\nEcu09j63UtXirhkR5NqEsI+GF8iWa3k75u77AzdVnAqEDD7ix1AiCVNaiDVL\ncZDm\r\n=TMzL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICo7NPLoTTHwWqZhUt6u2VrFKWKXIqHnSCA/7LONGo+2AiBiJPnk2HxnmkF7UyxnVmmfY0C+rPlY7p+WmPEOCcWcEQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.10.0_1614053861965_0.649727627658955"},"_hasShrinkwrap":false},"3.11.0":{"name":"react-query","version":"3.11.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"f01ff6c794064181738d61b7a4820e47415fc5a9","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.11.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-C0pi1Y96DH4cIElzFd8N4hXYoQ4r6Z5jMRleSlote+qabF9N2SKtoea/Vhvb8URVYlIx7fwIbevnNt3Ij3Mjvg==","shasum":"138b8f6bffbdc53b9ae78d295df72402393ce069","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.11.0.tgz","fileCount":191,"unpackedSize":1960338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNIU8CRA9TVsSAnZWagAAL4wP/iLMN8boMun0V/f0BaFh\ncXXtFhpQiJWoo68aFg+bdGMbaIrZrhIH6h+umbr8j/KxPdV7PagKNzt7yBmN\nTH5W8iImiNJyinFweuiGf0X2E8QamRGczsgiuejRxuIc/M1kqrPBXSbhF9IW\naQ7z3pfr0qKetmaiaRhCX6ZPdX4wwFhakgUHW4V8k9LS5okbMvEfbKZ6MmJB\nga8icPJfKVPGT05x1705hTuI0Gtcu/Pp9BxZ97qOLTMBf0IwQUUQczVIjVUB\nC8qLzytJBwTMcpG+QgRiiFt427n1t+yx5nLl7eqW8DVZsLzwyRdZN1H5YEbE\nQQa2ZL73K7Ayy5uVJDhooJp/KK+KvC5t00QMK/KFR1vueWAZQDiKqqBSd6H3\nGKhhNX8lzVlADXLXno8MWXaqlFexL+AoeFSTWqmjoV1lvgzmyFZOCBhPX6R6\nXB1mz9j/SlAJXwUYe3csefNiJnJN4bB+EhItGPZgs4DKh9NTeybEkzDWLxeK\nQ8gs296rETcds/yUZ3KAorGvLGuhzfk4W+m60SyEsqMo6xCRHsHfQHSgyq76\n4fmP7vkBSqY221K2Y2GguJl9BRYb3aQUO8SAO4o9blzBxf3jQ3htihiQ+573\nAsqHI4I5gs6eRnUFsFw++GGZ7tuUSvAMJThbOweuues3mPOXiheurgJMDDO3\nYQUj\r\n=EvIl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChl14fgeINN0Ol6qe1Tcsq3YbDsDD2ra7b1O2C/GylgQIgNnZsUenxi25Fowidmxa1bOPknjV61kIr9rYYVZ1uaEo="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.11.0_1614054715973_0.47851979599833383"},"_hasShrinkwrap":false},"3.12.0":{"name":"react-query","version":"3.12.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"fbd3488a3c13eeef3d9eb4d5cd536787ac75ecf3","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.12.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"integrity":"sha512-WJYECeZ6xT2oxIlgqXUjLNLWRvJbeelXscVnAFfyUFgO21OYEYHMWPG61V9W57EUUqrXioQsNPsU9XyddfEvXQ==","shasum":"a2082a167f3e394e84dfd3cec0f8c7503abf33dc","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.12.0.tgz","fileCount":191,"unpackedSize":1961128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNO+QCRA9TVsSAnZWagAA2JMP/iHHEYfMWVXinSXVRKFv\nhQcTd0uFR2Z6pASIr9goDzWkM3Tv6OpyJ6xgOc/Dt2tYYMefYKcNQP3uzDmB\nskc0APF5sLT5yE1lODVDt91WlnAQzk5k2o/1m0kQBODZlqkoMgfua4pghJXh\n+kRZFQvaCLllmh9kXPRgI5IwbPWATehL9EuNfEOD7Hn/lqAIyZMQS8U4IKSG\nxF+RZnsclw4iaZ30Db3RFC0zEO95L++1egWIdiAKrQVLNuVTS1CrrBkYsvj1\nG+gZ0KymE72vwtnZUZ2qTIgzSl7kovI008dJNMTBsetySAkFxxcDHAkZB7vn\nss24qhCq6iiCRSTjeBNgdJdcpeNNfbuYFNb0Pm6PLsOz6UEoul9fXj4xl4lG\nu4HXljZd9stX8gGxgYjDyKTourvMokZDRuRDywHFG2/5P/2ZEkMYA51y1NDX\n2haBGRCZ8HmsjOgWQ8ycFohFYG2y39Ej5bDoMd0Kfqthk3l9LBEUEhiy4h3E\n/YteGzkWQzceYxgnOLGzzYH3PhhUJGSmGOfLi62vxZFOWxSXJNDRMOz63g6Z\nJTAMRxeEo74oOB75vPFfFkCGQ3Do1GrR9xIeLdB9IYtbytTa/I5UNyAmwWNE\n89y0NX+YIjGX0odZe1/eaK0ygRmxTc+6Pg1IF5yr6CcaE7r4HKjDdDJJOv4J\nlRT6\r\n=LUC9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbTyp2XUmrcA6i5t7Kh+UjBlZrn4509FZD7y1T2OVM9AiEAn2NtyzZ19NcOWWH21A0/vy2ylsg648NYLw2HGfIPk9A="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.12.0_1614081935779_0.39632243165672976"},"_hasShrinkwrap":false},"3.12.1":{"name":"react-query","version":"3.12.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"52bddb67f1d41047e80f291f9253bbc4c7c3eda6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.12.1","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-NdO1yucDM2ic4JkK46qgGjGggtHjT/R7I7gCChTllYHvZn2DVtIGwH6P1UVtGZVLgL7hn5Eq3Cw7eDbMija5uA==","shasum":"6d60f32f368734fe03fd7d1a291a7715f4488c12","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.12.1.tgz","fileCount":191,"unpackedSize":1965757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRlnZCRA9TVsSAnZWagAAZwUP/AkkysE/EZYZ1IjsKEfX\nEhwI7sqas/AJtOFMleY7AMSzInNbwN9Gj/DYW+On/yYX9Qp5aYccBFhouwZL\nKBCJIZGG/unphrzYmzk2D6jQ6Q5bR8tZ/gnIrXptOZz6FbaM0BgyXnLLp601\nMmMad2p8p8pLmpJvI9m8/dFHm9lr6b9s/OKXAH1mEafotbBvKd7E7mpx7Edc\ng9xhJozNNkZVfTHukykiy5HgPlRzBmIKfqawa1llEM/DQHtTgbV9XgNBRvzY\nt3M1eN5/ZHQllA0GA0r/GEQjUOAyygB0SoOLAGajsWta0M1sZie0StqnmxtL\nY2akDUgtPk3bWCZpH3m7hcPnzYJoWGABLdcZ4zshIYY7XXocTnHPmFvh0w60\nFswEDYW25GLioWskoJhnBzuYraBF1PUAeJ6zIdkSDhZ56nodx9RHJcGvZ5CT\nxdLXy36chAmqh9oLr9D0WEYVb7Y+yUE3jOsBFYYGt0tTARTfI3EqPA9YJiid\n52mZu4aEDkH8omhJno/62ab6lGvbydSmmtFAxiTjhZZVDToKMUs8k2vmKF20\nscXLLulWfLUWvzXHTbkJE8Wxf0UzEJkV1inWlqYXPwhj3f7ISmDuokxW1Sy6\nbGtA7thA7DaP4t1avDrTxUKwGmXCllPQH1scweHf4xZqUpjd+KsqzhISkGYN\nSuW9\r\n=+lkE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgaTulR/77dcs9KTJgbAH6lTnENiMKnUK102ant6AmXwIhAMP/NaqqY2U1DUoN6AozSOoAh9JQTu/YUYnpVf/raZWd"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.12.1_1615223257306_0.5331613237618253"},"_hasShrinkwrap":false},"3.12.2":{"name":"react-query","version":"3.12.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"0809adccecc4510a98b1eb31224bb2013dcc6123","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.12.2","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-Qq/Vy+sz4QscLPfcZMrMHfuZKbKr47tsttHgcqkOiZGhLjsnYkLGcsSnMdOSLBzhzziYhs1i3plLmF0VMZw2Ng==","shasum":"57ae8056ba0cb63c9755cd00dc4cda45b29f9bb6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.12.2.tgz","fileCount":191,"unpackedSize":1965261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT9DdCRA9TVsSAnZWagAAYKkP/20YHRw75jEAanaRgXzO\n2pVvKMqKEVkWWzLZIbf5PEFIPK+d4j1DN6ZH5DnYQ+QbDCgdF3Dk0Ai+OJVs\nB3ZrvRq8h0bHTsb0dXmRkqpU+FsL/lSNghC1aIbE3ThJlwKOVi1P1TZtfGw1\ntwzW2t7FUbJmlZp1n8QXYgQHumrQdGa2ZsH0LeG++kWbMLL7wntLQrxttAAd\nA9b/NklRh4CVJE9c3r3OJxyqXqzFEj9JhsT9yMyy1UjQ/h9u/Q+FLmQZVYwf\n07YRssuShi4u9uBNjvHfbSHUBKnTi/INKE6CyV5zRrLwMIqluw39McZw/kpe\nqk+WMMf8hDl0+RnDPOvGFEu/+dv/V0QipO5u6ZgQL1n/xgKsw3Z+rib0h0sd\n3EsDDFGsezSG+eVDBbhXfwI/XERqb/oGT5S3sizhRQGg+0QC6Ogg9e+lFdJe\n5kVMuAmFdYjy1lrp2WPiQg2Q1hv5uGsBbFrDqa3JpYxQx4St7CjAAiHg4FMt\nyYgbJysKCQphqhAJ9EUNxqumdjWUoCjOxuDoQXfUM1i8XVaG5BMH/txK2EXr\nAfMYtXTKznf178WznrHVIwF2Z6BHeURisTf1dYZIph5Tq7f8ttiW2oaPMaPY\n6rQUBI1sLjlIaQEr1XeLD7NC+RiH6pakEMfTkLwz06nAehfgF3R8eKWDQ7Kb\n0oLs\r\n=pIQK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcMVnUQ8Sf19SfOAIz6JUX+Xhu5Bs0nPOTAj9WPHd8BAiAIjfZWjys/DGaKIU63+jgZUGAZgExlFpcqj1ltQDgzGA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.12.2_1615843548547_0.49880649476570227"},"_hasShrinkwrap":false},"3.12.3":{"name":"react-query","version":"3.12.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"cfecf5261e60684d60c3bd788a7a517cc938a065","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.12.3","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-EKkN/10BL5q4bBf195+ZOpd4mkpAJ3Uj1sFPc4ZoxmWXLsf/ABrLU2iTWYcfgN/iWhshhO3SKL32RYNYl86Nsg==","shasum":"5665bf798f8e4a0df686333dd9cc8f90ff6eb74d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.12.3.tgz","fileCount":191,"unpackedSize":1967484,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUno8CRA9TVsSAnZWagAAZC8QAJqDig1Mh0EXzjYoz4yH\ntmDtCwNninVsav8OlmFimGPPdZC6Av1+V9K1sv/z9izWLdzwup6Nt8jYEZVz\nxado6PUM77+DDirIMSY8OIGIkFtRMtNJF/a3tEMsrriK/1AFxe9mw1AgZtt5\nhN3s36MAGm4EcnN8XuE1YBuYZF7wz2jJuHF/APWPH6CFJ63Glw1mgZ+9VLWg\nosbMltzCAPPXM2sUYVW6bUrkhDWJFpyiSeUwu64JnCEp3gTTxUnNdKjtWv9k\nONTf52bzWBCnov0BwjjoA75FUbRffdTIe3b6VEIQRAGvuW/W2RsYLHyr2uMn\n7GJ1H+nuxxLfgRF6eh+ZNNV9bwJLnRqXUbbljG0c7cT/Kmn6g+WcJFA8BA8h\nRyFY9h5IlmK1pa77EfTTHHfCQ18tadBzRrAvzdt10B+nwqlbMgk9oyUtg8RQ\nAkkUCU+yHBAKvH4Y7PoceuhqPnjZMbFfy+Cg8zFaq9Fye/9ISQ2K6eWG+Zmp\nwGjYs/8XlNyH5cnSc02+XB+MNM0BDdDHZfSl6Qyh07M8poI/L/Zmtg/zhYTH\ny65qZ28yLY1v71g+gyc8FT/vvrxXhZaRlVxXrSERxzCVrcFYqSDNy/i3GyTr\ny76uPVAqF/YpzW+yl86azXKQj7iTu66lnohVU0HFsCl+ZLf7LC7mlgQDJ+NG\nxPKY\r\n=HQoB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4+La+gccW3FnPbCAUSUeFmVMYPdN/QM3CcL+GCoeXmQIhAP6+/gf0Dp9JAsM8F8VegzsYA5Xtesno3x2qmeeha5zn"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.12.3_1616017980064_0.3896273124899574"},"_hasShrinkwrap":false},"3.13.0":{"name":"react-query","version":"3.13.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"07b9f2ce97bc94907c66564190f83166994995d5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.0","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-CzBvgjMh8jNJMSPhXCE92DBIFbE31j8PA2k7ipR1F8DlcNAEsZwLsUzh1cTtzpDaS2+r6sntgmM6qKnCD6E5zQ==","shasum":"b42561392a8fcf3252336222332c4c94fae2e33e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.0.tgz","fileCount":194,"unpackedSize":1999556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU8xaCRA9TVsSAnZWagAALqsP/3Jx6lZHfzwL1N7HQJMv\n0O1QbJo5t9dTaKHWOyX5e7lxpyyEMvV3wIfMSi+jJEwSSh9qpGKj7ZVd+yGA\nlokgfT5Zxp550ydHj7w31awI3KV8UuqqTgXOH5lpyqPNX+A5+DotWoJ8Mcdc\nrhb6uBNfy+0A/pHQ0N4r1MjE6r8gzo5Tdu5EPizGZYsOoSd/4L/H0TQoaGZz\nG2Hot3NmWJK2haqRt3ZX0YB9cFfcZHqdxkLMB0nGZ2HhEjVjvOP7ptdSoBfG\n0+Rte7hOnYFzPe6nq0tvi5le0cp7VM+y9mn+IG19YxHqvKBP9aBWNX4PyHek\nPPGxuhHB2uupbUfhLE+zPsjMeNpHMevQzNuE3VgMyiGuD30u59vTcbbivi7w\nfQr8YDPBRVaBGbcapWt6aZmwdoD5nIJJ8A/p96nDOtdsfzuoQI5J9Td4CWI4\nmLL1embxXLcwju03sroRjWz7Kyj+YVlsQURF4dLbJB62iDjL0wv6q4pleZF6\nV6FuiD9uSji4jERdIAPsvy5M4Krs8F3S7HaSK+yAGF+Xb7YjiRfZ7gzoZSVy\nyR6l6RRqzU2Dw2X9LUG10tOPQ1YVk0+6w4SROluBYPJSYK3o0SybVHJV8yey\n+q+kgGDU+uvAQGS2aPBKctD5Egl7w5Dx22wx2TDHIE7dakacNE2X/r1DbZLC\n1O4g\r\n=sFkM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgNwE7+LAQHYKgGj6UdyGfJH/z0DagKztuUIKCpB79ZgIhAPXXbVWZw4EhCNdHC5mDC/6sRC0qvTtaOaSXQhw3KYlc"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.0_1616104538142_0.21593971686265245"},"_hasShrinkwrap":false},"3.13.1":{"name":"react-query","version":"3.13.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"b19ad1f97a4aecac9a35a12aa7a6733fe14cac29","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.1","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-QBPnRtHlAarZeA+FgRjAUX43lgIEuDvtgZXVNn0PzWDSLXLX/mytUwOJvQ3qT9xrnAE9zpa+YGNZOLIYepjLnA==","shasum":"9758ca75b43e41622bb9224eb310527e138fdf60","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.1.tgz","fileCount":194,"unpackedSize":2002255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY2JcCRA9TVsSAnZWagAAe8IP/i16f3OKlyra08WRmstT\noHLMHYu7u/55GoOT71FRMp+tGZLiCOPO78ZNaC25+S0U/uHL5ZoKxnaDaeqi\nRTkYVgHXnPQcTBrhZCpSSqtmyoJ8itdkbmIen/WUgMsu3mrrXOxBQa9pY3yB\n9A86RiauIR6z98pkgjWlwrLWw11B1m92tmzWvuH/Kb1L1O02RsPiNFHz7Rfp\n5MXNWAHYcbEghWFJav9xD9wlEADaisPh/TQ9Mm+VB88oL/qgkWrsvvfgp8lE\nWZS8mxplRkxa4JzphhGHQX/xhyZ4hwrhESapDOLenWxw1Zoenu1JnYGblFHY\nwzjKZDichSjiQ8g2V8NjB3NP4LGIaS2Yq0BPDPh8gsICrEeMzGftNIN37B7Q\nImGht9/PbeeWUdwiNWv9SfXTsACR89TZkkKVjGnpvrXUqNdMXF0XF4FjWE8p\nMEMpWoVtQJmUhcbmimx7/sQEd9xDpCRW3ObXQX6tufeV8AS27EcI9mjRXRpM\nB+tl6IK0dv6n6xcb6JIncbe8VsRniB8hL98/DILu8gd+FUPjVgqGZt6jCxsg\nN/cqLS7WHBMUoWfD1Ukjj+6JYF7M0zE39JFUZKft76uDw23N0GFb0HKkTVzF\nac+lpzZg8N5bS3fECFFwEeqyuBm8ot2+oaQnNTsIXmhmR5mi9ZAPKYXI5QQ7\ndw75\r\n=hosC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDakAIDztn7m2f3aFvPegFRSCfCaqJbHkuXTP4h96c9DgIhAJcFQcJvvlddR0kB8MaW3+sYjUZ0see3mobR9zOf0OI/"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.1_1617125979666_0.22338181123969014"},"_hasShrinkwrap":false},"3.13.2":{"name":"react-query","version":"3.13.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"9428bfdb7f7a6a6ffc2ef39fbd743e0b7c34e1b7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.2","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-KH/a/gj7sD+KV5DC2kL4Ws6uMx6wJUNsntehss38clCFil+fob854zygxEK16LllTjEmcAZBIJMpqOM3j7Ef/w==","shasum":"8cc6e4e90b542dfb55f4f021d2dc4b914388310e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.2.tgz","fileCount":194,"unpackedSize":2002995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY2O8CRA9TVsSAnZWagAANDsQAIcxiPV49ZO2tJ9ZQ0Ax\njmdP+1I6YFJKYNs/+U8U6ZDxwev1z8Dql6SVfEBLdgWzah+qONmr/Kn43T9a\nuZlzBlUWqAUREDiq0FLWDxSJ79BJhkAqbhgYBGb6c8Z+nZkXj23rd5nwI95f\nnlliVRmtFI/HDfrIvJ8yekKfs729ElaSbddDVBi7N1bUdNMp+OZOAWghIyAI\n1Z5cr/p+K9TH1O0f0/MT6P/Nh3rQU3STxO7Igr8tWsvb+akhjrGjiRuVcqTu\n94MKmCyLt2o3iwmmRvrOFn3yk0VBaxYca3QUhe4K5VDRyxZmyBccT3XgYWxR\nRdBvAis970R8GRVlTHoQmM3/OC4Wggn91p09E0olvxvUeGTlDte/dyZnKO3D\npMxWTKkual0N9DU5fZdj2ixpqOI+t6L5x6xDeJvkPHahkTe3J1gyls7rtH/T\nEgLL4wlGSBkgCQ5ixtz25Mr9vIwTVLA+J/1A2FSE/9H1Xp+wa2ezoJnRUo7R\nyQEK5udeGlRn+yyOTKtvygmm9mBt8N6D0FVrCJDhMB1TWqSXtzNKIDP7JbjR\n1zzhT+GldQQjwGNA+vL2Wyjb6ZrIXav9tOSt359HVA0iQAiuQJ1V3LRgk/99\nNJQYP1srjbzwJ6lGcvQEcaKOYUUzUzGbt3kNRZwEKQQyLq9uR1N4Hq9OcYLK\nymu1\r\n=M9Mi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJoCNQYHEpNvuodgvS7s/K0WHoUDjTDo4B9JwlZKdN5AiEA4Hfs8T51isxv6YXXjehDcxCq0BeHldZfHunWxYPH1Bw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.2_1617126331845_0.373400413419515"},"_hasShrinkwrap":false},"3.13.3":{"name":"react-query","version":"3.13.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"e42cbc32dfcd9add24cadd06135e42af1dbbc8ad","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.3","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-LQpkjBdwFtGhePx14g08ZswZvE1AMZPdrhfwZtxj50esmGVlSvzRxc7hkN0zMUFBqCHk5zVTR3BW7IPYK46/sQ==","shasum":"da4d9ec65f9dc74c58496956f2fcbf29e49a5e73","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.3.tgz","fileCount":194,"unpackedSize":2016439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZIYtCRA9TVsSAnZWagAALJoP/A8fS1Hj8UqSgUX+ynEA\n/5FBgfK9AA1jtQHUxibxxEW8ldbLh7lAc8xGeRfOi19envKoxxTAc885EnOF\nEm+/aLoziAoU/yMQoWUjDuwfwiB2bGf6WIFQCuvJ1l264PAoDN/OGpeKX1vU\nmk4ug7TE76x2Ww5f66tE09jrUSIwDKEN+I2U5Ph76gjKSdQ4+RCEGhrZQqDc\nkKJ+dnEMA6pWGvBxKDpfuWSl7/6tVB7U0sO3bvZbRIKWXFMZa5DqhuWKbjyN\n85Efz1e1eyJ7XmK52bufOU8EjP/Wcmh60Pj3SsKKCdVC1FlQ7rcLgVjwju9k\n9AaSj0ZxT2XazoBqdgZVGby/b0prb0OtX9Iz7U2m4N3/qWID8QFvwd3j6Hvb\nd1Ja+Vr2eBihS4tJR8FT7VDlVeyjPbmo+3oCJxY2U+MgLz0S7lZ1miKRSYzl\nPBkX4V4wh8zl6v97bjcziB5wKCeyIn1whhckXm5H0dwNriGsTu7Ct87vmETk\nt4hDRRHw6lz6ERAu/hEdGSbXzb+JlHS1kQxdLmzPfu6pE7HmTA9ThP6swaTi\nZnnw1Id+3u6u+1qbQFMODUtxinQ9Ncj1O/kCqPpZZUXAtwBA1WwRtBExOuBI\nktmc0DVmtM9WWnZPKkqUIUQEKuuVQMYfScokisz56sJNhWdjNyFfrsP2h83z\n83A7\r\n=aPBr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY0Xt9DfG86Cv6J0pgxxHgyeCLQD3au3XhEL14mo3UlQIhAOhwQtpiFbgd6fK0l8rpzx59y7aubNmFBQT0a86JY4Al"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.3_1617200684295_0.2712036140813596"},"_hasShrinkwrap":false},"3.13.4":{"name":"react-query","version":"3.13.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"7b14ef519a544d725f2cff99574f0a01f92b8c94","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.4","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-tSjUQpZ8/Fvu2xe2WSLa3Qn7yn+199HTqnz0iPakR9J7/5uSv6JwHPO0AkH/mSpBhc7IZos842kXbGCxwLoJGg==","shasum":"8924c4453bf8e1332bfec994390e734c41ce8dc2","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.4.tgz","fileCount":194,"unpackedSize":2016328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZsEdCRA9TVsSAnZWagAAqZcP/0wjzL/uQDLcWuf0bblX\nmovZnLGUO2usoZQdX1hacYWzZNbKxPrOYaoLTmoFNxNiVCUc6sKk2K9GtyvX\neZVlcw7V4+h3FcBg3xjpPGCEHnsmMUbluHPdQcj6ikSzVqFRclAfU6fnoxVq\n3u9Vu1Jd7yMl3/ZTYSpxYSpyCgfLO99brAxUPcreT/XsIUbqxrQlYz+MkpMi\np1rQWP273w3T5AlnhzWvSUYsivYVF0Rp9FJL0TOtfWZBY6GgW+fHJIFJhD4m\nDoX8h9T82yrq1OpHtWKIw9ud3hMXpQT5cQiR2UhiL92FW6US/10rX/qBmkJM\nMdv25WOJBd0LLrvpVGymSr1ZcaegRpdHNpuHytpA1V8CBRydwhd4GiyviqrJ\nOok3e6Kro38udzYRPpzVUgsDV2Oo6TrjB6mBRaecVvHTQPYnUnPzLrERP2g5\nWWJkKbsrAqrmH6Gn1/Vb2XetRyjPrCUYrm7VSQBtnAaJpdjFl5F+0aQnA68F\nlKZJpRWbpxUynAw14X4oM0yPt73hVEuSOxHJu2vlcPDELCVUYrNh4Oa2DIn5\nekwzNheTE/mPBuW/NkSx3B/Csy3hMDI1aQZtHI2lxprPkkd0fYdx4/UBB54S\nUwDnIcRTAbKAguqxRJ9i7VvtE+kFPpFR6agAT/iW+RR7EZMEi/NKbz3rmnGq\nk3Io\r\n=RFxF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEL9wF9NUONPo32Ayl1+4MnxaY4D4et/j1BSnOk7ghrjAiA0zbyECL4LNsTeUrsjA9LjFKqsvvxohoqHQPcaeFlB5A=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.4_1617346845288_0.6442105472891373"},"_hasShrinkwrap":false},"3.13.5":{"name":"react-query","version":"3.13.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"356627a33616c360bccc3a1ccd9521ecc3485f1a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.5","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-rL0NO2gVfaeMaVD0Z0yrxZT1oMGejGxGD5t+5d8eC9kpID6oa3r2bFBR3nJeuPhwdGvZtifbB1KJkKdPYaYqVg==","shasum":"b59e2094014dae0461ed7aab68ae030be41eda8a","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.5.tgz","fileCount":194,"unpackedSize":2023695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbvL9CRA9TVsSAnZWagAA2EcP/1VPwfSDyKuO307vnoCN\nRd64hxBqu7DauemoTxIczhh/4Q6K6jOA6oLn8S3ej7yEsMxuMrfov1ROYIzJ\nDJocfPBg4py+nqYDH9sHXk6zkNsJqf/vLlgb3TptVEIgKNZM1fcH/djy8O3g\ndfQnTFWgQvSphlTysmWrzsVzZ1nVr6e3+1QS6MfKfHg0QJZrf5nk86W7yrnc\nUhFHfnkAKwrW6NYmcLI4efUnYV4/nNdfyars5ydeL14VFT8tO/JgabMWQ082\nuy6QvV0RmBn4sEqqQISD6gBtICsf2w2Fe6G9ixWb3xPfD2sviEqe6qs5vL/O\ngNFDc2AgB6LswRGHRHQ3uwO9UqccJDjEMJSKkFvoBEAJYKkHJ1X+jVQh1AxX\nONL0K1iQoUNNx77ITiPXTdE1/kc1NnE73xE+WEsFFeZGOv9y70I9k5gkcwyK\nAmdMMxjDRAfiw9/hygEGH2q8mbObtUGJBXq9HqgEBOe6jgbPLd71CASngGbU\nTvkZ6Bu+xCQJzp8z73CA0RBU0aFl073IGa4heSmKege641pchO6xHu3SKsHT\nXjybMGJ5HNv4wq9NMi1yI/2MxSHJKW9TqrpWJDBasyb2FlmKXrbTFXk0QVC9\npiIRMXbBIXPHIBeChUs7XhqFoY2jQ8DoCSsr1oD3BuEuQ37uPcmog1RAWRjf\nIq+7\r\n=KZ7v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL7bwHWTuQNGUjbW7DgJGEP4c4w5KTa2hfpXRYHvXXtgIgYMrlHa0cBO/5Z9AN8swA3Re2Ce841C/C93sT9XwhrDU="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.5_1617883900674_0.4885154535748397"},"_hasShrinkwrap":false},"3.13.6":{"name":"react-query","version":"3.13.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"a88d80f6f7b2d96ab605ac08f4fbaed9a3bcd4b7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.6","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-PIj4WsDycyTs4oVa8hZ09t1MXy77N1ik9lGTO7tHAPg2A1v+9wHMLqD2/Nrp4ALL32Diw4R2gq/Fq9StxOh+gg==","shasum":"59d9a17b5f78ea674010bc69525dd1b189e2177b","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.6.tgz","fileCount":194,"unpackedSize":2023761,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgca+9CRA9TVsSAnZWagAAR2UP/icIJV31ix4hL+/z3o9u\nIp24EAu0kFbMwabZ5+cMxpVEM+s9MRL/tAOTBS7SiHETpaK3meHI3cJZrY6n\nyUH2MGSEMtHoL+PCQMRsWNHMk/Ge4puJChgXVYGy0eYqDOWsoUI5Q32PD3cA\nJP+iyiRO6M99908PMMERPCkYqddEtmEC/9Jcj3Ueel/jTXZGHK14qAQLpSz1\nBKzsX8tyWBkaJD0d7bRKPfL+2Tg/vhzrSDtWnHBpwAYZXeFeTtxf/iOGfyjM\nYfY50AdXOPu4h4VcSdHUxCsccxxEGJbNwh9lWKGcjBt1WPoFNbcZdkn4YWXN\nJzreQ880vNh6u3ymqDOuvgfnH8Q4W950DC9+iLZt+0nwwQ73NwS7RpF7neBn\nsWeZA3lNRFyNDqVM3tQxj0NHTe0DgSIQIZe78vhnQI39vlx4EMtOkETKt4fQ\n6rH7yk68nbJ3ioIlfzl6pDbumVM88Z8J43e5ZE4ZZ47n9Ot7EBSTbXKR0VbZ\no0EhKvofxKN3e1a5YS/J78RHjo29DDgfUKpfV50WGn8j6MOhckDjzCWeAClC\n0BT3em0yL2LRrjaoLkkJ55BphP73hqUDDY04n4N+LzncDlcw3cZopgETfqml\nArKkDwDF9myP8Ggo2YmWUCuvdJqR/05LdvfsxsTgL5tlkrOoBsRdXyQxpJ3h\nhWbU\r\n=jQnF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyKnzv3NKqv6z83+IyLln3LFSlLNh16gTgKOx6XkZO+QIgRKROgINk66KyzCLHlhNFPwTOavcBJIKxhrmUEpu1hcw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.6_1618063293067_0.7674068742582711"},"_hasShrinkwrap":false},"3.13.7":{"name":"react-query","version":"3.13.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"eac52f66d3b932cd17b1215eb95d2467f629d150","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.7","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-PIU51gQaIQX6WY82e8FbBzYr5pWajAbQsVKdkS3I+hnp0vTDsr3usIjWj90r0ZEGP43nZH3v2HPXXg1/bt8D4Q==","shasum":"34f5849abbf0c41d88044cca96502c98696b36c5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.7.tgz","fileCount":194,"unpackedSize":2016691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdfvaCRA9TVsSAnZWagAAOLoQAJJUQagXTBoR12pTiX4i\naptgYtJgoB26FJAhVugRWScyk2AJ2d80xKIHe99FGXcOpcFNXHmKK5LTJ9f5\nwXBwfm5rim4vUUNHNlntXtPkMdeZM+a59ACNXbGneQd3EXFk94muqNsyUX+a\nbg+Yq4RjDBW3NZ6CA0RjYi+fnqYfYz2UzY1YXVJqBaivjiR9rOPjEG2HjLon\nwEKyKUly6Lx4uHDLGHOtloMXtQ1bVUm29yyRaNlifi9te43ifZ0Dea91raIR\n4c0jG93Az/8dRVJd2cD0fqDjdGCe4ZJw9ptgaq201ikVggPBU/p+oC66DT22\n9ECabLk9YseIEateB9t39spLxkxLAXbbytBZdfysRExBPVZXWszISdTdsV+R\nV66A5QQMwLQqAuspKspl7hZl5/03slrAK9C7+EvMU58qBFT+Xj5vRkGg7IoA\n7cqzsR/SAA1CRnbqx3JVYUMiHUGo2LcpFZG1oxNcTE3cU5JtgJ4cVCD982KA\nNm6Wq0R+0371rFcrbB7jid/Va5RvNq4mXUDTT30vzavI4aPPCwEiuSG81NxC\n6YTRF69y2LY1gCIH4laOMVWzoFUrUHAKvmI+V0h+rYUyhc+P0EO3mZ/OmQgv\nHGW821ceR+oD+JmDrCq0b8d42gO+sQ1LdvfhrP9F5Be3rPwZmAVEoeqh/POq\nxCWr\r\n=uOdD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHGD8ZipINWZ/T9+jLdy+vzFUWKxC5u0JmrIdyXgXNjkAiAcoJa9PjhoDPeoSRooUc4vS5od+1fY47naEwRVKrRhNQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.7_1618344922331_0.753975150932813"},"_hasShrinkwrap":false},"3.13.8":{"name":"react-query","version":"3.13.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"20507737119e7d785c42c36f32f4d774addd892b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.8","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-0zujQNExerbNgULg3W+7PKTyf/iGzTdBExUaRIxb/mLa+Ghc5QKl/5c8yqkwwvlAFUUX8GAQ/Qu3l46SKOWCOg==","shasum":"fe82aa80064857bde93eb571534190554addb2d5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.8.tgz","fileCount":194,"unpackedSize":2010598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdszDCRA9TVsSAnZWagAAKFMP/Rldc0+OzNOXLSealvaz\nTCXUiEWK8C6GPBa6E1n1mLp+cCwyH5m4y9Pv+wpUdOJN0MUVrV+Q6+NXprxu\nXEnoMmOGY+pyI8VRkGH4e1r5F56XU4HKkczFCl8b1eVaZKdaSOUVRkSFV0Ln\noMls9X94D2kvSU+QG5IeUjFJyS/Ctt8OKJufjy8GVJQs2ujsCkdUM/PrYvWO\n67BZnnRQyE7SHGEdoGUBfWSmrGXQYXYzqKmF6cjY7iVfy/B2uEEWnz0kCCLZ\nU4D+btYKaDo9cRo1tQnsZ2uS42GOclmhqTtUcIdrteU6t41uCDSWe5QWIW+T\nghosdPN96UjvpTjP28fHv478JB3XemKa3D567C6zKP1eiY7kbaCsuh+uo/AH\nBUQvV4zjm3n5e36VpocoLuuQShx2wDdm+prz3mTXEIxdQXj8xwFUepEf1CRL\nO4y5O2bk0SuG6lYi0Ci6C48kAMVqvg5c5wbBrcxzV9EdAbXWOEKWdlcUjUs6\nN2iQpgsRb9WRDRqeYyIQgo8z7vlpZMtvBd7RFUaQDRyY5JLl+ZwnZOmyDMQr\n+DqWjrbJfrVGm7CFgaAYije3GSPrCHPFUgrj6dFfLlYBVkFZEeae8dPjkd6x\np1oMnlhVoxrzRZcK3j9smebja/5KfO7JyWqGmXucocLNqM7EtM8wO4tQi6gz\nZhPu\r\n=JsNO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcUmMParginI6ZvhqEJU0TT1d03HpJgaY919U7jt6HqAiAOFmERKnt7/MhbLz6fXo4Y/NKGV6fsS6IojOZpxfJjYQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.8_1618398403357_0.35456583663237073"},"_hasShrinkwrap":false},"3.13.9":{"name":"react-query","version":"3.13.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"de282541591a7c350035a2fb5c27f5404c5daffa","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.9","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-gPJ2ekm2NA911C9Fc18h///WcE7b4edf5K1JGtyi8kTSv0q9FyM2V+ttTbBAKafTMbbYh4Xg2wqXlR+/cIUZPw==","shasum":"52f3e29176eb115248b4c6e3b5c0bea7b60322d4","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.9.tgz","fileCount":194,"unpackedSize":2013653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeGpqCRA9TVsSAnZWagAABE8P+wRTJAAPjcKCFkKbmtQ1\nnYrtBrYJouDbQtQU7iJampF8Sm3nVOUq15XbJySJq+phepy+pWvnmctYwtQr\nYam2W8aluBfsajX5phcdqOOnLxR5ihyLUq2rBSkwbmvIYg52pDEBqkvxnNPk\nVqfcTw4ypTPEL6e9NBngEMR3ca1TOzLd/+g/EhoH/85uICir/WLk7tbx68rC\nPI+x+lzo3+wQMnSH+MbGRa7Oetk0ERqksH5MCiziak2qETfrsIUiyjUNnoeJ\nNo4RSljFy8RIv2EtoblUcvAb84WS6MYErAkWcfS7pbN0jrm17M5aeKe8Tsvb\n5H7QIzCP7T/zxR5XHsVDxhBi9KlLx/bLtaITx5tuaFjQDayFnOtQ8NOxOy/K\nxHrfePEzQmW6cANnCOdkZcHeJ0LZ78ST7kSccMtnV17+O6sSRDh7FMv+ijsX\nULTci6KXfrHM1ZcwwZuOw9qVA5tEcg1rwUfY5qLjbKP0JNISqLnSV4KZg959\nxq4hSV89gxaKhJlGlyM7pJSvkeYD2pzC5BHNes4x37S6lHbFlpTrUjOKUuf/\n4bjNmRExqasjZw9hxsVsGa2dHSrdURB3R3Wq/+FxlaSbCGJMRO1FDxR4PBoz\n2WciaeuKEiVflZY+Mx6bG0pzyGRxoNOIij5pSPMX64Xmcv9UQpxlKoFYfrig\nTaG3\r\n=KlQ5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBQq3XcwQXef25nOoNMpur+u7at3VakXA1bMzR1LE/LwIgQaH1galt/xab5k+MVR3PulzWnA5FjBHGOe2Z0by/wg4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.9_1618504297848_0.7114251339656781"},"_hasShrinkwrap":false},"3.13.10":{"name":"react-query","version":"3.13.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"c3434575a1221a33ed9684f87ef961f7df5adeb4","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.10","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-wFvKhEDnOVL5bFL+9KPgNsiOOei1Ad+l6l1awCBuoX7xMG+SXXKDOF2uuZFsJe0w6gdthdWN+00021yepTR31g==","shasum":"b6a05e22a5debb6e2df79ada588179771cbd7df8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.10.tgz","fileCount":194,"unpackedSize":2013251,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeq3tCRA9TVsSAnZWagAAvo8P/RSlsWDNfrGgSE9g2mbG\n5hrrfs+t5hK0U/MiQxuxr/e/uoLdFb9Z58ijBhliK8YdK61gUIk6AXEx5+78\nB/L26A8ppgRqFRMA2Aw0emaSrhctZQg0MdXrOBwB3RgCflCZNhnZj4uSA354\n55qX2uRe6iEW6e99/OsNugfv8enn+mfBtUCh19F0ieUDGmMgtyt2o2IdaiUo\nAjyKK8g3DFtJf7KGgr7sB8pjkcU0Q+78YP1nFNPvVQFgWkjYqCuOkUzawgys\nvltog2w9Fztp2wIjB49lc4kxwunD5XqiM3qTxDZjFMoQVbuLsKsvexwpcwMC\nu9GQ/KUbj5kuHrwBMePm5/biUKXDKAzUNpeOr/6Qj439JkbhTJIG4rD8+/5l\nZFKXExMr+FOajtjXok7LEKVDu4oo3EuxoWZNLlkMl9Qf742ksOFnDW8XFlRP\nCOV32HnIp/NMG4Jnc0YQNIVpEcycFmN+ZBw2yxTeXyf+Hf4sa7ofMmcADIg6\n6bghs0fcu/C7t+y6MlGiHrUbjbWTOKJD1sVLCrhh1YoUR1lpSeC0SAqTAxWX\nxT2PmAANoOe9uymatuF8H56F6UGjCXOaYv29qSOXq9d5Pt5+YvCJw37euWoQ\nt4R2YR5tuJwB7uein/Frf307lPElsJmY2143v/ucDNOR5QiSx2kHQGmzHLnW\n/LmE\r\n=wsLE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGeFppmueiEMVbsCqV7XsRkcIVn4l1d+6H3KnDM/MB80AiEA8RppZNQXWHTqswQIGA31VsW4n2h/6/BZv9xQDp/S4WU="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.10_1618652652744_0.737000295685323"},"_hasShrinkwrap":false},"3.13.11":{"name":"react-query","version":"3.13.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"5f7363518a8e0549bc7f9707cb257f09384c7b09","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.11","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-UVpCuXSEQ587DayD56nKTwJA+pjf5LVSwSHzWX6H9JYHJikAIy11R8S8UgQZVmNlWTsyaIzMwVFolbQJzpLc/A==","shasum":"e63d4e1741450af4f227d0b14b8d72f13cfd170f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.11.tgz","fileCount":194,"unpackedSize":2013257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggEY5CRA9TVsSAnZWagAA4wcP/jyuWSTVxMr6kcwRunXs\nIahBWqmJ0V+lbpbk7bc2FumrxtKZbPsnOsvx0vQgN1FLynJktkJ7oa0/HLmI\n6gdPmbN2Z6AhMjzdJhkkdgJaSOj1e7JeFjKPKE3ZpZlcDU4/XJVR0thcTyFc\nibpBs21+pSzMvPBJJXy1ATdSk+GR3tdZe4uidUYk9aSyZbc8LAbg8dDgM7yn\ndVhyFmjzhQn7r7LplyQWvjmjAsexlEK+O+IvVsCYYzWvBjM/jq8clzZ8Rott\n31zMkf3SLoEHMb3ooY6RbcNy3gzN23/W6mcWpyWVQv+w7Kj4vBUG76GKDkAe\nS59UZ62+ShWpjTCH3Tk8Q8ALMxiA8QzDHD8cMfEJEHagWvO1TZIPvhB2eakf\npNfoP06hlAbi019WqtDSZJ6diR9CwCeLA9bvjAeyv0Hsl/o/59UGIrqd5Q/k\nN0Gc8kuhp4ebAQ+V4QR3C6sTcMJPUcwQMk+kK8C1ry4/+UWabblEUeOVDQ9c\n/+Fx4i8lSr1igMdS1SY2GgEInAa8bqUY8JeQYCWvVBIIpdFhI8xjWNHxizGv\nClzWGR3VZ3hQSzkvr0N11O+Us3lB/OANsaYxskMRTMHiGu1VJ5dEpjOorzql\nJd3783hMA12k9L/lxjKj6RSl+0KbO4E3d4Us4Cb96WajeigvWhW3wPFfbk1z\nrira\r\n=MBLJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBbRJEpoy9pwnQX35c6uUyRie4uTwiFbdRq/X3oZi7V1AiEAidR3SIoGQoox1b64DpIERNw0/Cv8M82E4gOVLU8q/pA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.11_1619019320924_0.8498528385854154"},"_hasShrinkwrap":false},"3.13.12":{"name":"react-query","version":"3.13.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"92435c77b8b62351724375ae3d10ab01154e0034","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.13.12","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-RZYvepBdDG4Xgz64vUHjIkUqXX6giw3xJsgdRjWx+vLkOB1vbIQE8F82CNlVbYW3JjZobl4YzmOuLx0wMhLX4Q==","shasum":"d8e432099445fed5b03406838291d42286236263","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.13.12.tgz","fileCount":194,"unpackedSize":2014074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgg80DCRA9TVsSAnZWagAAAxMQAJ+MRnt05x6C+hoPlC1z\nK4JapjHgi1+amZV8vFgvdJKVpDPojPUjl3UoMIpJuzFRHFJa8ZiAgoKQaWQ8\nYqpUF10ZJ+1i92/2Lw1DIZdCzZ2yDJYvVurxdPQ+91tNbVibLNOMA1ZNnemZ\nhbbmOPsvhXbIOmjf/vvWCna4z+m1T+/7Ds+kNcj/IHpLu8cNJKegFI8/jiTZ\nI362VlWWldufavJdM+XJBCsTkkfw32lI9hnJcgiZGIUGeZYv5eAjHVLVzjM8\nDg+EnY2beSRrF04SmlfafWlWKwBo3OypTwK2Cu+jMKNmc0tdIyAWatCSuAby\nI3OUyvyand5HGTz71bzzmLvvXT/eFKPb1VXWXFzxHoRCnC8Di9Ix/+eTgGHo\nlkuZQC/MzmsclFKK5YOuGXov5qHHRnafZyZtPb9yJyAPFEukWNRbHKpX6BUz\nT8gzYPGHYgHM5SPi47nfA4aS3EzV34Wf01o2HicettSXZnh5+E5ojpMp48/I\nlEGuZjIPWObV2SUp6AIAR13dKexxc8j4QKPLH1YC1ox8GQ0bNPrAgTfPVZxq\nK/nwOuTChmsvPBw0l7rvqj33qyR8yCAMozi7zzP+hmY2VzWL1kAHUWIJjrPh\nTKhmk5XyHuUCyl5lsTA3bzVIN31JA0+Kqza7YJX4CpTfV44NPMALJ/ujiYyS\n79Sm\r\n=gce+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWHx3Rah217T8zwoJoB4UCK24iuuGrPZJIhf2zzhTnaAiAqPumfNQuVAO07wkhtqvttqiQ7H445fmJ2cvtpv3/Gqg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.13.12_1619250434059_0.9708023954033087"},"_hasShrinkwrap":false},"3.14.0":{"name":"react-query","version":"3.14.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"79ad5a9ccbce1486c10e7e364d8fc28bef3fa19f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.14.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-VCl7/3Dc92ILY80Kj/pyJ7wYQgQwjkKayO3J72Ucdu44kLiWRehL7bu2WKnovtV5GFP29hVHp4KP9MJnBPP7lA==","shasum":"b836319af05bc4750f11f85f781c7da66f4be3ed","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.14.0.tgz","fileCount":194,"unpackedSize":2015284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiZ/CCRA9TVsSAnZWagAAVfgP/jBaVFMffFXPvNXngGlC\nKbIUKYvZ/i0+geDHQiLfPFDHFUNcL8tsqZbVF4HbPahrnueME7gyVzgCs06r\npYugGUcwvLGgWDIHjyhTWNBhUaXHvgw+kp4Z2UU2acp7Dx+rValfh7vh8Sip\nFKn2v57h438+Gk0sUvBj8y8RSgf7IXU9P9t5uyJzG3JzalNfB6MvlKZN3Nji\nqtq+NRTMa+fqb1yp+3gfyNlnm0r4z+WqaJIjtZ6IVje4K1whHnlIgbKtJNXA\nsbII1fxL97jMSabZuNmk2tVfQ8/HoAx8Pib1AdCt/zHc7dkyRxw4fS30ICtF\nARfyRuPYLHljuQ056ylSwqexnwbeq0K+tOGPA0pQuNoHztRPO2hE5KcajL/i\n3/oasbbBSOCfOAcexy4vrMILeL+OhJAz8FwbeA6vKtU2FPDq/T4qsEj2N8/7\n7vSwn8+C+tvSJ2glV+eFwkuj4LmkrbwqzmFy6VVv5LUZI+JWSVGxI+RDIixf\nB/4Fa7CBioRgYbzj6jJi4qNVb1w+6JOxcyOIS1mJM0ze4cWDQ3LdRlwqJ64X\nhK3VpGuB88C+knuML4GhxozTmwqdvrPQA1S4EPWhOWxeajLWE15LmZTs0iGQ\n/ST9ZQqnTVBZO4swdGmo9TFMU38t28S9x0wTOKQhcVcKPMLCDpO+bKM/tPNk\n60Sl\r\n=UXlT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt3MAJWqAB4zclvq9gGVlSOdUYME6y7W8YZMZswaQ4EQIhALVxFyB5UVAy2+ktT3QR2O3dzygaeKvz0m1KTJA1c5hI"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.14.0_1619632065442_0.2100191373217568"},"_hasShrinkwrap":false},"3.15.0":{"name":"react-query","version":"3.15.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"9626c1b732b657fa7feeffb2f4c019f203461708","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.15.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-MgVc8BLktVfKixQbAP3ZMzdFXvAUQenSpktDT0jOeiu+VMdH0E7mypfdiGcL8aPkSi3dfXFE12/uMGCtL6YnIQ==","shasum":"71ab4d593ba3b6218b6683048346c605b7f9dd25","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.15.0.tgz","fileCount":194,"unpackedSize":2016746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiaCFCRA9TVsSAnZWagAAEosP/2vgeoOk8sGUHWy6sUJs\ntJqmzhWfZG4Aa5eFdggUCTnfPaSgPxsCJqHcFmz8p2dQKdL0tp8CoTNeoDzs\nf8NpOZ7fIhCE6DIbiQxOzp5po95ifHTDPw5yT7yKwMAIlyobRCcWnz/94EVp\niK8/dXx0GZ2QUGfd8iH2kQzlpqAI0sH+oeIjVPSSnjgatq2/T1jIFYj/O1HY\nAhDajiJGNe0CQyHmSfio/bTBWc+GUmxbFwI9Si70cQout2/9kZA31IcxLXCx\nz3ezWyg70A9pe+ro8hM2w4NDYRiqmZdsMw/YF5YU2+jrG44365qkGAyQrWRq\nD8vRuTLq6i9o7HzYgAAaIulzZsAyptQRg673CcKQklXqj75FfCRRyiw438fE\nQ6I9nRe2Ir85OhP8SxRev8DFj8wXaf35uLhktygTe6aVcujr2zcqNWUKNXKp\npzRQcfRe23nRMKIefy0TDkUhnYBt11UZ1c4pTDoToOR/eqLaDOvP+p4m0bFs\nFvT2FSNIqfnZUGBOzdKIHVETSfBO+a98vQg1/cTHnF7/JvlFUZF2QguFMMB0\nZhcD1YwYX7qIZF/g5ZFq+SNaAlRXL4Y+QybPEyEvPCr9+vCsNjNoxijwBkEv\nknX9p5AFecUsCxtV+IImx6GL7C/5YsrBXjPFWPQVlAHKtPRHkqL5ZKQU6UD1\nAASj\r\n=x9kn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI6pupoUlYZR5+zJYRhW11dFETo6myNBQKRm5dHk5CTQIgP5lsOLw2Ya+1hk5lE7TUNtdKzqVW64ztAQmPAtIlSdc="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.15.0_1619632260596_0.4725001965906621"},"_hasShrinkwrap":false},"3.15.1":{"name":"react-query","version":"3.15.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","start":"yarn watch","format":"prettier {.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,tsx,json} --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"^2.0.5","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"2e03a615f84dc297bb00004ae0f7cfe99dd5fef0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.15.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-F17OuiL7CS9HDbNt1vUN5Opk0Ua+r2y2liDGLlZh3mbdc3ANob0mgaWB6TOBdlyMewbgg+qf1keS2aCV1qVWOg==","shasum":"060b32c3b6bb7d54c55aa3f2c7a494805943b62d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.15.1.tgz","fileCount":194,"unpackedSize":2016773,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgid+pCRA9TVsSAnZWagAAs4gP/0/J+rTsoiljD2uHRuSl\nF+tC6hXvMZns34m/YfqeDjiwFrZhq4UvrTYh+3BSePXE5tXyFaGZRGPsAf6t\nsVPJoNFLiajlXgJE+RZS3LLdRRyp0fBI1dSoxZxaOirWgVvIaw4TwtkG/1E6\ncS/gWc6tkXF/4n8ctuKbSsePYCShxvqJ9PBa1vrTNkyBJoTczh6InLWuXr8Z\nrxQm2NR5+RzpZ2ixyUlylickTjlk2I4q1t6Y6IcKdkU3svL0nh44oeG+NcdS\nCVJ6mI9X9rIRzjh3FHN1x73qPdnTgCvKRByjJfJ0xmyClCyEZkL0vGL2/x3K\nlGOLLVGxFNjyUZKp+M66woUn83uLizUvVwF5WwYyyNxD3vmPkCnTxTb3ZR6f\nuMjvCLsdMZSpUgL/YILVYzl/autD9rbE03HRGg+j+TbIMbYMt0Ac3TMXIFfo\nnlCJVHIbNLdcFW8nxgAZA5/KwQTJLU0I+AquTlMiPXK1/COz6dwT1XC5e91S\ni8UqcU1fiwMP3iCCfivgG/sPBikib3Q+ubwHJKGy57B8WiAb3rKbf+aSzARE\ndSSe+cDuCZMPxoU889emO8JQULpvUD8+dvp7NHxx3VnqMCqK2im/UmB0MdLI\nKEzgA3lFJ52W1McPaVRN3y8tjUNEIY0Z08FrfylfYqotpD/rGQvan0IJ4WYJ\n8aFw\r\n=mpSH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4nhjdgoVZ48nexXrsvSyr02SFU5Hm9TKz+Rknwcq9SAiABem93G9Y92ANgf0xFVDrP/DaPo7ZfG6s9Cqlc73g/1g=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.15.1_1619648425038_0.6603852063440647"},"_hasShrinkwrap":false},"3.15.2":{"name":"react-query","version":"3.15.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"4083c1ef8a8734d2680a4e5f031c7958c18ee176","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.15.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-7pm/WR+zl064W0pfQffayM0Jmgsz2VcoDL0pRFk06ERpMSYLQjX0fFZfvVRIgJVRjgS3A04pSY1iOYdw92dzdA==","shasum":"4ff4ffe9ff5e3bf002a7e863cc01b9d58c5fae01","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.15.2.tgz","fileCount":194,"unpackedSize":2019850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgixVKCRA9TVsSAnZWagAAB1UP/1zZwp5EM25teR7Eukr5\ncqpp7zKYZZ4+NG6nt6VFEk4666A3Y8Is5cJNKZ0dmIoEQIovZj391IfNrO4W\n0EmWdo/ZsT8gsrJi5QZRM4+SizN77aiMg7AWEIXoelwXYoaqQV+3G3w2rxzK\nmz2nv8WO1dr1QPOk6lQmX2jz3X9xKL1BSmZGY//y8u/lPV0WCnqqz2Q/kcYB\nzNP6pTHRUnaMgqtY0VIgb0MEvkFmBK7dLRL4yJyxt9a0B/S/887bdnymS8Rd\nRnYJS4EHIpGjRxlk2/B9wXR7S6bi+WoZADIgnAfSTR6WBynZqYo6FAO7/7Is\nlyKhVF+NV9YbCh+9udFgNBSmcbLIxzLvs59+ZFUTKtOK/cEMrs9eUMW9qajc\n95SEkvzN8hLHTI9N9274Kc9LbhkXUWAePUKzHLUFx6TwZaMbmh/B181xYe4b\nQUNppDQYKoa7yJliXhXY5rGPK2kO7tAs6CWmX1kKob95LYFYZhU1+FDJHg+9\n9W6IyjRh+VCjcu9C3wfGYXY5WIfxdPWZmVIWwOllqg4jF0D083uIhtzo0EGD\ncNhj2JAvQRbHmL5nnFDiNPJJrAFJb4h7AibN3I97babivQmdD4FZUW3lToai\nZeWU92FnwKqKJ28LbBsLPeZ7eCEmIFC319w6k67nLqn/Is2g8OI/IRMz6fAQ\nX3P+\r\n=W2YW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIgH+BpAZcIY+EpUFlO2Po9QeXgIL2TqZ/4nG41dRQcAiAYhauS7lI+uS9O9icok5dQq20svwBg05sNWV3wycRriw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.15.2_1619727690345_0.6124207076590629"},"_hasShrinkwrap":false},"3.15.3":{"name":"react-query","version":"3.15.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"c8b3ff2153e57d1464f9e1fc9dc44f8294bd3a61","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.15.3","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-rzz8htgpnoYE6J+VrzFz/zSP2Gqm+gwvDITEp6BjtlUEqfOqtifSHulgJ9QO9nfBk7uBPYQYOEzLtxwbaZXzCQ==","shasum":"2b966e7ae8bd445b773f649d3085950e30703beb","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.15.3.tgz","fileCount":194,"unpackedSize":2027430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglWOpCRA9TVsSAnZWagAAGBQP/A6N+lyOQCjODGO4kxba\nUPfWFfo1NNzyNVq65G2vp80ZfZ6Vkz9nU1Lf44vV56z2rRkhihQ/ks70ejmq\nOXFhE8GwQ8E6r7ps/80P9eVX1vSKK8UwQwxlnOmxRFquBRkiZK2WQtCHaodc\n/fj+7DZpgCvGwoNzY7MugQGlJDSO98FmJwuhIU9TSi7IqD82gbmCh2VP4lO0\nxxU85qriy1Xx72/P3XV5MdWAqF8Mf7179NmClfCITqJMedQBnj86+0FSk1ua\nETndmKvFyN5fQxWu4mUuSY2TYgU8jqLAezuh71XY9hYnrE8oc1a8RK8/HF3W\nH6y71WbskcpCocGSKQdc2dqJHZ64kVZTgzC3BM5omj0XvSa75IzZoyJEQ/T3\nTz9DVB9etd9W3+WbPdDHuRVc4WwDcJCTBMeMlWaLRYb5rHJqyia3Ln14JMA9\nX8mKR+3uHdd6f2tepJ7JhYmeI/HonBSoopJlnZNLvMqen12pfmhyOxURIlGb\n4RibHsG97YRfxJROiZENBD1IdJ3qF3325opPHXKIrpcYf94wkc6uhHKA7ya8\nj0kYduWQLPDOoAeq1khvQwBRA9GQbT828YYQY4ki9/5cypzJPJlA3cq1MYkN\nM05o8+upngs2jX0nXilFAfGUwyMnGLzu3jEeo0Uy1fYMyMCVj6vqyv779Gpr\nBq9x\r\n=IZkz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRdsRCd6uMBDt0w3trh2SvKROl3WBWA6Ikd/OnA7gLUQIhAKNeNDyt4DlHqjScnd5c9u7LJ15Ex4e6S77hbWVj/dDN"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.15.3_1620403112278_0.1683716580465564"},"_hasShrinkwrap":false},"3.16.0":{"name":"react-query","version":"3.16.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"0edc116856cf19f267a17515b26820c04be7d845","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.16.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-YOvI8mO9WG+r4XsyJinjlDMiV5IewUWUcTv2J7z6bIP3KOFvgT6k6HM8vQouz4hPnme7Ktq9j5e7LarUqgJXFQ==","shasum":"8de1556aabb3d200d0f8eeb74ce2b0b3dd0a0a51","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.16.0.tgz","fileCount":194,"unpackedSize":2035273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglWauCRA9TVsSAnZWagAAGKUP/jt1ok3DdbCRVy6wk6kE\n83LTcpDTDJb0lDg+Q3jC98iX5nN6ntJdmzgfL5ganm1Nqd15hQ4+LNW/H6u6\nPHKPuoUpn8L/WGCdyNg/ut6nOXyh0pweEghZTMeUBbQ9LOVAuUHSeUqwMVel\n7EOKVgBWn868Yj1kgua4moo4P75a2U3/1nNqzMnJzD50XlpCf0eGtUloQW52\nG+Yis6dxANMD75Aq8f+fpDqks8maeBqBnJ2ttv16Ae/my8fjjmVhfAHwk4VE\n6wTSGRDlzNi0/g35sV/+PIOPjzhvUZseOd10rKr9/5pxV9dp+6zueH6SlbxV\nOOTZBb3kc4Ycohga49Mbl1hzwu+unnvh8LSnV6tthVMDZFw2r55y7NDl3MSj\n9DCom+3yd9Ttp9EaLbHuJG9g3EYMRVctY4/HE9V83kvxwIfDNVOOCJ3aPZI0\nBPmP88pqXkyQz2nq9H6uZO9oWq1MLsxSP9ONYYW1nFmguiF0hJ3U6xdwcpb2\npLxrq7F1FF+cGq83j7/VQOVfpDPNKrurtEzagQcPXhfZmTyhWBYPyaN79rOj\n3H/fNmnepUH2GoEKPgeOCD7YNvzVlkUA3NpSnRxXJ8dAWG1C1fvMwiVTqJJu\nxOPbPm/rVdGKiXYuKt8pBtYLS/k9QlAkHRRxS3x/40Bc5IZ/ZUoUrP5tQteK\nCvr0\r\n=WI3p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4hiETcx1ulefeGkBjfufsbQFLtoAUUITiQDm/xyO5jAiEAsgqSWAudRiKbZz7TOuFoZsvP2BIbjGoCmIJNTIZRD2A="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.16.0_1620403886176_0.3405936985767648"},"_hasShrinkwrap":false},"3.16.1":{"name":"react-query","version":"3.16.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"ff830db831f89ba7cebe66cf8c23ca218bdb3643","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.16.1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-dof8XXSZ7HprfzvpbJE+YZrhUXcQYxy1j+NU8ZPYpKKDF79wlZAke+GyYhQ0b6SuOFp8ZpVXSpdD4AL3lxmeXQ==","shasum":"0bb9c5c45a74e14b5e204218fa602fe1a1065976","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.16.1.tgz","fileCount":194,"unpackedSize":2056091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguzwxCRA9TVsSAnZWagAAVWkQAIzmcEMJ7eC5PP1hdInA\nya0QaHLm01T6dEn9HtJVVhlCB5fJQ+p8IEy3UzhKtCVYfrF6WogQGJzMlqQr\npL2YFxxw/64gdJzL69vbpYHnYWRodHwW/SOX9qHF29RYG/e0yjFDRqUq+u4l\ndaFhYDv3Gx13XpvpTGX6HyAxAX+3a345Ni7Hg6R0rSRTEbyCcGBfCch8591E\nLoLKM91DmfhQuE1CupIwe3oTZq92v61dhZpdv9WRqFoA5e3KH0EfEukXrOr4\nfIuoGrQisE1E0/BCD6uwUCZorh0v8NmsuYgBhJoswIuOT2QdnIfzQ6Sufi95\n6JQmuhaeEnH+L5J/lXf3OCf0zsdnuGzlbdBq8Qhx3nImu12MlISEQJe+6w4R\nf8HRrHMurBdL+dFbksxPrIjWIwKsRr1KmWWpmBddjtAq60aWuLBwJl7EAvsU\nnXW1kjYN9W6VvrkOcvsyaxj3AnlyAU1vxLczlyJf18LvgtaJrCWTQjqdQh4h\nknyjX7ObSV9PaoZztMm210IevExS3l1UyKkE379NHgwL7EsAD4G1iBE8tIom\nYBsOLxJNYup5GiCz1LTlfjz3aANAqMuSf4k/CIe2hvQezTbVpye5QRL0usr5\nI8+cBkgUh3GKSMuCG8LtUKnI3VTrF+lSFTKIYdHn8FOerbS+Owq0CfojUmsE\nAK8H\r\n=AZdG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbFSZQwF2XTvcqZRy65NQnGhompRY5NIHjdTRtrijSnAiBGjFaIyzsy5ca1Qqq6EmUyhdqhAwTM/bpPHqHRWU0ThA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.16.1_1622883376979_0.6530855334818768"},"_hasShrinkwrap":false},"3.17.0":{"name":"react-query","version":"3.17.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"be6bfbb1bcd0ef5521413e92e9746eef07486276","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.17.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-/qUNb6ESCz75Z/bR5p/ztp5ipRj8IQSiIpHK3AkCLTT4IqZsceAoD+9B+wbitA0LkxsR3snGrpgKUc9MMYQ/Ow==","shasum":"461c0a030044760cd874c7ea8aa9d55c2dceb15d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.17.0.tgz","fileCount":194,"unpackedSize":2055072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwzADCRA9TVsSAnZWagAAF60P/3EyXjPCXHc8oEe6HXth\n7wjC9vzAoca8GQLRPqsoxK+bFKy1QiFiEvbQw0DSwrdUlMhRjlWwokLb60eh\nSalh797CKn++rLhCraOllQgLE7FfIjeAzNBRDkP6OV+XtIcdmpAfcBra9ejj\naOcmCqXz/ryjeCRDhNbtVT4ikvJlMhk8AqJ/PrKGTe6ZUP126TrCpFFVHFtX\nZWtnZZPv2uASzWJTmM5ZXvQdGurw0ujZMa6MmeAQv5B4S2PCs3x669y4/ZG7\nqX3BgTs37PVAJO25rVemQrHunLgTdR0VYdpMvQRv3wF8/ZN1P277GXEYCaMI\nhUdJPJAoWvW4p4snhVLGHyakGl5JiIhGKR5aAFgl0PYfZgokcnHTa8+3RMLO\nMmKmtDbGW0RMcTE9wUnjiiqX2ExwDTEiX7XzBY9Ty4QrrHwk7xBvx4jzngI5\n432xHI+u6e2CNzo6fsZIP4eNHD2Jhzrt0hD96jeT0ywzozTmlq1DHpVWyRS/\nEr9HwuiXqwQEYKImlAljUj/39NLIWV79LBwCiJgh4nOyzG7a9btGcrFtFbtk\naMilkWhu43c8xF71FscyZ4j/ikiyWBNcuf/G/gXxArHz2R3Qm8J1HFZvf45D\nwhrLSWm4Oo2+brliwiCcKADgMrmtnq+BLBb6Okuw9vMJlZ4YyQNBVdYv9ZAl\nOG/q\r\n=7eD3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDunH8gIOAJweWrC4H5vr0pvI5geSjCS0i2BuqZH3AFKQIhAKidFOwHQTnuT3IyyE97cocqn7nmI4PlBSA16p7K6cEh"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.17.0_1623404546769_0.29252849948383863"},"_hasShrinkwrap":false},"3.17.1":{"name":"react-query","version":"3.17.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"772c6c4e121c97b54dfe58165d04ce82e6703a30","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.17.1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-Wux1Dcoh0InYB2dNI1yGCP86Yy5bCGggJWYy91OhJG71QSsl9SRXSGFpT2b75beoe7SDNGZJDQMxbvIQ93o0Ag==","shasum":"01c46bd0c5fa88f8e9ae6c8fc0d0adb4d47d9d0d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.17.1.tgz","fileCount":194,"unpackedSize":2055073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyXqCCRA9TVsSAnZWagAAXT4P/R5Bp4Vxg7CaQqC9beIi\neV08GBnz9u2abzuGRKhh2PgnAjNeIHT1bYnawUG8moJQBiM+QDxFQ52Zpm5V\noPk0IEEHbSsptAXBhuVIU035Xw8DpBMy45tH0AbW7Gw/zNdcBRCtd4IbISTG\nb/rWku7whorsC+bIRNBzuVOYZ3ukefCL/mJuj+lYcok3CXvGYjoFO6k59nkZ\n1I4B9wvmoR4qJrrlmKf8UiVElq5DozCQykgN0YjPzO4zZjJPBWR9aKxNRDFG\nyULszR1NG2QdlgfSkl2a5+RGjGtL5MDjB8qEziz0CqlQYhTvHC4jAkWTmnrJ\nXyTrg7aSjUdykHfAv2QVug8ctKMKSxv2zvFxwIaCcNHqSvUvUukznnl4JtrF\nT3CRVk0ekwCUjdNYcnjtaKYLCgjPD0s6TSEgJj/mUn9Kc+SK56tj0EwGX7Lk\nUro0zP9Wi1h03So7LPGEjHOjW+5u4ZKz0gaff66sq6tDg6Qe6sZNInCHPj+h\n40ogm1L0M9nnQYSNiTs0YfBGOKgo5tjEsj2QevvzB4GTwdZ5OL7M+TnhtO3J\nyoqy9+SC+ZSso++Gq4weI0l/TKJHj0jLIohCEM5N0+zRPhWrTiBdmeORBkeZ\np1QQiC5HxJsiTW+Pj7kLi928CmkTgNnCed5XS/TVrWKsvYy/Isa4pQzBvBfp\n6WCk\r\n=Ukg2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+4l8IpbEJv/gfHxYTpw7Jx8jFE6DwuAb/LeWqr/vFxAiEA9Gu1yweemyLMF1/eJfpU+SUMrDkdec6P4nYuTVO7s7E="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.17.1_1623816834062_0.3477111187845794"},"_hasShrinkwrap":false},"3.17.2":{"name":"react-query","version":"3.17.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"9aed040364796cdd5cab0f53123e02a6c6f769de","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.17.2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-icMtYL/+jUv0Q3n8GRz6CTyMYKh+l5EBKwhkr8qhbtYRORr43YGiN6EJSyw9WFaSQ9bwD1G9ZhaFxow9NMV0Sw==","shasum":"3ed5b0460a5a05332fbb175c36da55fb2d3ff929","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.17.2.tgz","fileCount":194,"unpackedSize":2063125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyxB5CRA9TVsSAnZWagAA/l0P/jd1LP2svazKhOya/g4x\nKn14T/qv4nakhS95YZa94/w9La440s57+mnkf3gwvmanVBai3MmtKb1+fheR\ncTqOr/d9ds1KKEEL49MctE6iKlNi/Y4m+g8EFzEmO/PnNgebvStHQlt8w6wb\nw5mTtCUDZitQPRixkxi7teyqpyIHMGHNZvvMgUgRV7xIbxwncka+1Sk/YvXi\nrABMpSkyYrt0nMZR7dRYzOuUj4zG/Y1GSrVA/dNEDjFF7Fv2pjN7UQXnI5VZ\nqDrtGHA3OU7EUwZ+jopjl4uUMONZpmPhSfjL78REg4CpwI8RaYB7UejZpYnh\nQK7bzDm/G/VsIcvFQqPKuQ5q0qwhtAZDnWAbK4Iz9qoJ/9qZBUZToTCzQtF7\nRCVUUShxgZhbkfWkEBf6d+delXLUul12gofu2Vrr2IgxN8iuH5oXFVPIqibU\n/3KqFdKU7+z7E66z0VdWE3rpkz5oz4Ns0whOZ+CwlO5E53zxeGizx+GztMNk\nmc4hXZiCi+G5BCv4AxCzeL1vnO1JEDl5+W8wZudiru7YsyKsONg4kpEsqvJH\neiXof3zs8hsyUeEFH7ycuhZzHMs1xf/gXGoiLp8dLk6hgqw8vdgS6Euu5P/E\n41PDUKv427RBv/uYgpK3+HGAU3YOk4QmTaNNcsnv/FYZBsYnt/iyf0p58Ltf\nwp0k\r\n=+NQJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAzxEj31DwrYqFFVoK9cTIsjw26KSp+l7yBC7mElhQOgIgKPwRzoekJfP+cnK/UGD+mt66uY0iC4JrcTfdbV62UsE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.17.2_1623920760479_0.20177821096138215"},"_hasShrinkwrap":false},"3.17.3":{"name":"react-query","version":"3.17.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"a7780444bb0bdd0e7a768c6ebc57e04aea5f7c51","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.17.3","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-DxCUp/+ioaEIfabBdCZFj3CMKl+QLj+o7NjpyluvMKYvfDN1xMLizNgGM2kiwihWboXewRdblYsBSlI+8n4Lcg==","shasum":"5304cb503f6f62dbcbd37a8c8910629f9ea6a506","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.17.3.tgz","fileCount":194,"unpackedSize":2063857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg14P4CRA9TVsSAnZWagAAreoP/1hHoZGp3Gd5blGnLSCD\niv/xwq1cJp0X3N+Tj47vxX7bR16BtpTTyIML1tsyp+e4xscJXmzIvo3q7gQN\nSOpPcxkLEEp2v/nMpICv/2ujG4ytGfwiF5aW/KczG+ghqP10+pLLJYeY1dVY\nvqDYHYGroBd93N77Jfp2PXaryq/LxJ+FLNdy3ffy0XGT9D1fj0GrsIi7Mx7G\nQGZr/Wt5x2hsDPdmDHoo9pprpr3tEKtt8jvwXjNJQqGKtfC5TIbzZSdwRXFp\n09MnBTfRT3ZUepDXX1yedLsGbj6IgmY0lAGmt24+Jcc6zUB5X9QOvveoMkqE\nUlssNxEwd58vw1AQK/5fHdzWm/Jwqay6ek5hrn3TnlsNi+pV0aPFBBhh4Jyx\nIDrAuw7FOYQX4ut7DdNB69quTQ2rG6CJ0sZYbDbOxvcQCJ9HekyE836U4de7\nI7Jtxhw1gAM/4LbJoRdM2tIpmQy5Gu6Mb3ao2YL+cUhvLqETI3mJPGhYxRHR\nKHZlEENDW3UQ/HHLIqur+/6GSEZVrGPHVjJulxF/v4yQ6T69H/omIhq5tZW3\ncE12I26/HvT2jGHQZeccFviVwZT9sOrhhfCy66XaIa+ewtW6G2Gq7dl4Olue\nsTSzZ1zUZhgsgsb4s5FoMk7p7VT3EkeWDlQ7NRwR/gHxptyBYi7Lqn/xCvKJ\nBifk\r\n=Lu3r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpG9Mk40uUlyHe9buS4xgCV4gqg0K+CxQ+ncziK9nbqgIgYjtgVOzPecTFV9UvWngSSxvygi9SyMpe2QK/DrinOh0="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.17.3_1624736759728_0.24395564253582358"},"_hasShrinkwrap":false},"3.18.0":{"name":"react-query","version":"3.18.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"7a628d6497e6f71242f9af84de46997083f12549","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.18.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-WhbR7b6eXOf56ZdG2WEtkSO3+3a9X8axXN/DJjcawSuGFvLoiyiYpnXpBzDly/WUDCwg7a4GB7fXXE0H07wrhQ==","shasum":"cf5358b6bc018b9087936f13e72511d36b9bec7d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.18.0.tgz","fileCount":202,"unpackedSize":2086731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2XjPCRA9TVsSAnZWagAAy8gP/iqzpFTAfez78zu6+th1\nFV1IdNty/D4WPlFBKZXj2rtjQ6cVbBiVANssCBX3/EjFxgXncrXASn7hi64v\npcgq9XCfY5f0eNacBI43f6yBL6ZxTUh7E78ELn0EFce4dGDoCz7EWbcjGgOX\nLCfcwbVEYSrmftYhW0dTb1ZtwGAvGw+bOHG5lw3lyLhhT744j8NtRRf6/6Fg\n2iGoW3hoVXloHo13QF7dSkWKPeXMnvM0wM4eQyGl30aNRwrQeAZVespiN/hN\nN3vxIXJgmO572NqQfYG5OhzuTBTc2yhJ2srIt3GmnoLzgAEUErTlU7GmiJ4i\nUsKX+KBiL/mWIRK4vLTZUjZeYxYTZtpetJeqOayDpUV3TT+lP15bQt5p8yL8\ns0FNoswZC3UmHYWPEJZFcpV4OpsF5G+g329Mq8Fp4KmRdt9jbOAgs7c/EZDY\nyHLl5aPeJG/FqXYL5lY3d1+5m4AmHBrNblqehnQs58dfVg8FzRjmTWeEoB3k\nnwXvFKTLQg5ueZDQlOQFRou1Fp6gjlewpV1hKFhPQR2NGI+jVVDY96GLrcPW\nteZberJ34yn0cvobe9Qnql6k7J9ifSr1iCu0pSC6NXPZewOvNIY5l0XxgqMR\nLFpK9hVH5j+1ozJyf+QZOb0ziQusELm534q4eZwl7ZmcII+Td2G00y5JCZdL\nalb1\r\n=uLsH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICWmLZuzbUPC6X0IRWWCFTKjKxU9harX+qXVSvqSbXdvAiEAxkSm5zis1ZQZ7780DuwwKV8h5lXJgQGH0XxuTLuHG2w="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.18.0_1624864974931_0.018367382569731028"},"_hasShrinkwrap":false},"3.18.1":{"name":"react-query","version":"3.18.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"e5ba8bb77ee5df8acf98768430c9a4d506c73b60","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.18.1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-17lv3pQxU9n+cB5acUv0/cxNTjo9q8G+RsedC6Ax4V9D8xEM7Q5xf9xAbCPdEhDrrnzPjTls9fQEABKRSi7OJA==","shasum":"893b5475a7b4add099e007105317446f7a2cd310","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.18.1.tgz","fileCount":202,"unpackedSize":2101131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2bDpCRA9TVsSAnZWagAAqQUP/i1kB3C25FjOHolyhRR3\nUc6hpZlCa+3KflJUg8Jdcda+zSN25sLY1LfQCMakNyUnqb0Wqeid2xxpswxR\n/9/DjAm3MdHqini9aNRs5+2tcHrA4iSiJib0kF3qkA84htnyFkiGUV7FpdfO\n08aRncOxs5Lw9VmFJDGNC5hkBKZyVC7Go+kCPwy/O3ZikWJT/zQc8wDaVYIf\n3jvZz8NGkehjguJLIDViPFCYFF818grZR+mzSAyrc6LL3aXwiLdlnU5/pFhH\n93vE4I0pIEpoQAdH91/fZAph3k6mZUoMQRecoUDcLR/6ewu59J8q3Z8TiW0K\nhQ31rKQedPYU/ChlNg9ekZbud7HXSPjX5LCkzAMucmW71y31pz0fSEA9HDDU\n0BB0k7CtPaygXWTnZjMCH/nAKkOQ2P7xWTT9VfKyNc1/mV/WxDIJ/EAE6EGR\n8CKNH4t/UxxrmED5E8FKfBl2lkUbYiFbJ5aJDdgAtSZPmY5r6S21IWAukV+B\n7/nH7bRJDsj5hy32HA8P5Q4btwrRQYhibbTAVC0PHO+b0Wqwfa87xlFPRJ7C\nw/dKAxl8sDsm6R9xB5lSDhGQlI1YpICzKctOgBSBpETQjpG2HutAn8gjWV0U\n/21R5kZPSC9gPFAcYcGdxQp8EospEJFm1Zw6iFLORaypS/UaBUGVyKMZdu09\nHdIa\r\n=1K/F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHxG9s5HSZWEGMfmPLvGLZBggORpWwrZQO3Zn0FFQ/otAiEAlTpaVCN6cK0Qecx/CrIMbfB8fdJ7TPQnRgbg1/U0LNc="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.18.1_1624879337415_0.759516672961488"},"_hasShrinkwrap":false},"3.19.0":{"name":"react-query","version":"3.19.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"e6da990703482cff8ea99f5a254975cb57463ed5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-AaerSVsmBG2iIciwX2x8cWZS4Htw/4u2GFTYK8oiicpX3PY5mvat/8/Y3wZhM47KlllAzvC+P9MW81oHuEt2wg==","shasum":"e1fe8f62b9956fb2986317686c27f79ad7ee4e7e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.0.tgz","fileCount":202,"unpackedSize":2105964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8WaFCRA9TVsSAnZWagAAypMP/0seLRbKLyJH2dB/5bUU\n17OL0NeOXTWD1aW0TB/i8FhNMys2Pp3hfRsQ4UqhPd1Czt4W5wKImAs8DUF4\nEc+i53Y6fZad5FjffrATVtgjUecfGnNFNhKZ/7i2svv+K5enn1xVWOMX9etj\n4h8GB4Zf7lzslOt6k88DOHamsub2ysz3oRKmIpjoUYmRdZd5is/jJJW8JKxs\nqLLn9w3L4OlU5zi1wjKcsFvKkKwun90kgGzOaX9+AwLz1GXyShrXySxC8qyz\nRCLfvFFtQfP4T/Tbx0TCrtBJ9y0LyJhKCPAwaRt7P4G+l1hTeaEdXGWPCfGY\nwl/W0hidhl6Ke8ay8l/g5x9/YCsKrS/9riXatKTjpkXACBXE3PYMm4ODhJ0s\nTfu4Dxfxk68QzQbSnwGwbkwCjmxae0hVnH7MpK/ZOSVEu0fKmjVafchx4iaV\nhceXm44VkePZFbbYHXKqGjrmgHlvzdiyLFT7dhokWAsy5OOPUDL70v79ieL6\ngxGuGFi61hJhT0yEoX9ECn5tfU/oqraw216/wzG0n/YE4atY1pYrkdBSrk/W\nOhbgYf1wH4+D43VJDvisikr5IfVrlMKR0lcXPLEBNrkmv3OWZEvtScWJsWI6\nTPANocOMZM/ct1BXVbIGD2gU7RGD9vHkzN6VWsT3bQsVCDOTLI4+CDf0U2Bz\nRGY0\r\n=n5MG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9svi9APs5dB8ypbjd6NKuNYCkfAA2Di3WQJg3ex5NZAiEAuNiQgwVle55qMA2SQ/N4tsnvHgkbqf0hWcYITMJNtJE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.0_1626433157499_0.6672556686857007"},"_hasShrinkwrap":false},"3.19.1":{"name":"react-query","version":"3.19.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"b95b86567dc5f448112d6be6ce5c08b4bf9e8769","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.1","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-tMBVKlmWevPHYWgI8ZBEgsTulJXSuXsxDbxqANODRnPI+3hd5GRVcc7nNIYSUx3aaULt08rN3EhTMHyTcFUNJw==","shasum":"f3fbd5af48b6c47901ab230f7c028c6f845254ac","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.1.tgz","fileCount":202,"unpackedSize":2107503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/beECRA9TVsSAnZWagAAfVcP/3URteBDvHFpm03TYYyZ\nE/eNRK4/1MosxDQg0/Rq1BdBcTvnP3xrOZtrpKsP/1lVfMPjc5drEq7cTaWL\nFFxLngzSjjwAW/5Cm9YHaQ5CQCANFc0PTGHJMk4RdUwOuRWzArJ7TvCOHTkg\nm5kSDM736fVmfmSvTJ+mhDabeOgKdr8RHNdH3pNOGboQslWOFmW0mTkjiaTs\nUHkuamHgGh6n+uuK5sxal+5gahLgtg2ZjKJECdRhLuQFr/VDDUUCiMMlBHLd\n6jmPMoGnnM/+UT6nXg/9E2A8SK2jFRdjwkM63xidWKfEeWhfTZX7udZqx6pX\nhw5LJWJAsamSH+WvjrN+poR6WQmOq+3dqsQvQsGNywBLzJBc9d7SdQuR07MD\nqnSHXZDccVNKPLOeqNtxvVEVJcj2Twr/jNqLKNtr676Iew/bgH1d0L4oPvga\nZPt1tDcmVrst1GieTDv5fWVlVz9UHG/RWPdAIq/OSdrNHB/UwymPiXSz3SnG\nyWlekwPz0854mZdBZc5GYkDj//9uQHrMdBwXODgKZU9yaVB7XfGT+aygGiZT\nKjMpmbaj8AFq6uy6qP9eYm0VIQQGW6SD5XWtVoVaMQujVYJadsS0gHnbTSJd\n1DEGAk5pQTPru464K9+TaJIvws0wrJVxkVyaXa/Sv1HZH78jVQWbTXEaEbou\nPzpv\r\n=miBn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9Vnmo8/cWbm2g4VA3OTlSF9U574SxtaLUKpr5WQsfRQIhALOfgGXuQzqtURAxmZulRw0orTlL8SGAEIkbVgkhVnS8"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.1_1627240324112_0.1372117271075548"},"_hasShrinkwrap":false},"3.19.2":{"name":"react-query","version":"3.19.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"76e314d0887edbd702369e8554cc840508561b94","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.2","_nodeVersion":"14.17.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-YYQ+jZ4DaabnDWEbKCIvkouLWif2iPFgBIeKLPkUmhXM4cz+Kscb5Q7mz+U57Ip17tarhFiNwX86gWXM69ouQQ==","shasum":"8ab70c9328835604d05919e3878fcce555603c0e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.2.tgz","fileCount":202,"unpackedSize":2116012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC9A+CRA9TVsSAnZWagAAQ+wP/jRDASAjuMktem9Lcxb/\nhS+H9CYnx+WCzq1442jQPjEtamAsuoRCOdC8wRsMCM0mpIMWDx5aMqgjmEca\nca6xMNSj6Me5rjt57DXLwR0QpbSOwy51NwNASI0z4bZSiKiJW57pBeeF4AGt\nvAmH6Ly8BVgIIsagGC0T0+dcs0cmaJ/4Y62Be6z66aoY1fIEQqLaVqbX3/yn\nmlZ9NdZN3paul1cjbbtryvFGWULsOyIcR3aoe6sPL2MwSS4lFCJvkFBi3t4U\nZsbbIxPsXoE0yJRpkp+cPwONybYzeNwfmsOQM7EI1fskup+wof8nOHvXkkNb\n3FwpiWUxIBXlDnal/3/xpgNpjRtszA3kGzFSj0M6VvwFpouuVakBHq2mUvlS\nVfK5DuzQDaVM/73PxeweZYkJJ8Cg5/7CkwtdLhP3DJOzFybIdx2V+NT5jNpa\nCmUGetxmBMUakrOK/lsGb95zBz6IoBPjLosZFrHkf9YgKiHtRRfFlvwv7v+F\n3ka7AMTrgTpdjtJY/4JbxZnCHL+uQUrI28+5X90Ezf7LcP8SIUMJXI89LUXO\nwv4rOfoBjN/UAQIeY10497aPHgptLEPPHbkT0wEs1y+VmrWkxAJkJeDnHgkV\njIvavueG/hX30k98jLYXcNzXoy+NC0r1rxlwKawYqaxnOnWa4ui0IZXbCzTg\nucUn\r\n=YrRL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtyQyiMev8FM45kEjJZEA//k18MiCY72TSOX7l6AdKNwIhAMg8s9F6yVOWvrzP2ZJrKnjS8JAXbdepuQYc6tqYVGpP"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.2_1628164158424_0.44375105479203913"},"_hasShrinkwrap":false},"3.19.3":{"name":"react-query","version":"3.19.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"418c48f611817caf323c2b127f9e51f522109dad","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.3","_nodeVersion":"14.17.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-zsgyXUckuUQgo1wdF8Ud10ZjoVJKpSTqNam6KYykqAzoFc/38e+dn/FYKmqShBGTORy6OElfaHN8ukam6TZqtA==","shasum":"b1283edb5927770179412a1dab83ad15a3d8d81f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.3.tgz","fileCount":202,"unpackedSize":2116334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEkEcCRA9TVsSAnZWagAAfLkP/04UNWv1XwJmo+h6Na6g\neehOnBk0tEbJRsZjUcOGyLcO22eB8PGTeyT+xiC3dwc/99Q/UU5y/vjOPg4S\nUr3H22mxCVXMxOapaOyXh+Hirn3TvT+VbjoKgHNnp09QNukrrkS+M0pea3eJ\nZRuqhzqfjAqKU1F0obIPH3GQgtcSlvyn/jd7f3wbkoBLx2A/N1tuSSmpHtnF\nU8VOfPanoQrfJacp+bG9p4OlDWSt8u1jO33EVpcvAafLiAaPCEY/ZHMOK+u6\n9xBVJrOLDErL2NmUAxHTPMpZkXTW0Zu9Oi75erQO72c4AMSZy5kZECsf6DV6\nO3OBvrJSFnXmC/HVXeivADitXBMvOefCFtJ9E6ilkuW0T8IsQALNtyivQDgs\nrdrSno967baMuvnWcAG0IbyVHHaUTM/TfWp/KSDEgL+JNU8PYhLstWG463S+\nFT7P8Cg9HiDKPY6OWreUc1oQpx7fhnywTIDinXNt0CxK0wKdrrAT2mBwt6Si\njZcdSgUNsRknQqi/v7k/goaqiM0Evib0cA9Z2uQwqadT6NQEA1+uGC76MoOO\nzEynimmB/jygk7yrtmDyNMzMvtW4eSXBiTNQLRyy2zdlADvc971tTEGfhdwL\nq0gqQGpk2t6FYA0H+krvr5vC7G90fYjFrd9LZC26ZENf22SBSrtPJ+Hcaal/\nfqKA\r\n=uhmJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPr3z5k42YPTDn8Wio9u9gA3OBBA0RS/x9P27N/VDD5AIgDW9pL1mybm791//zcmyNleSVWdsblKE4q5t6mDXBquE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.3_1628586268677_0.47410530873237033"},"_hasShrinkwrap":false},"3.19.4":{"name":"react-query","version":"3.19.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"6bbb3710e5fae3bd8c425048be3a2b7f14c29100","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.4","_nodeVersion":"14.17.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-/jQXoYv2IqWnYx665M1da/M6EFaaSDtP8jVqcCFk3vhpJsNYYwFG9vPjqIUv/GRpKp4qzk+qwTkJfF/bHeBuZQ==","shasum":"67b97470446bd0315d02066debec7775cac83f29","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.4.tgz","fileCount":202,"unpackedSize":2119420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEkjECRA9TVsSAnZWagAAzZAP/31vnXU/Qvg74iPCjIZP\np7/nj9QLljlvdJlhYcFJFMQiSuGRwV2fV+ZiBKAjLALD7ZXhsm2qyewhCx+h\n3C9RHB/IFdTRcW70oNsTlG8HfVUhPQBjo1XnBaSlC4MSG9A6H5tMxJUzNj79\nae4fCBzi0jEGrAScgOdL+FTbdFR38mEw/OPWkGuJsIlzF0WpELYmzsCX2xKa\nu4CKwGRhRr+z4CiLowAxXoVLVWdnjBLByfmail8JOBfQiidA84Xxh5Gp6Yft\ni8nfR3vRZo+9S+Ezefe6rrgX4eXN5+GVTD60A3ayMiQ+p++MP1IICPqSC9YZ\nr+bxgENWdYewNKsK4n3K1lIYBWN+RO2fYjFtqqnCQaTuIh87mFyJeabQ3smM\nAnXvTMicWQeeWg2XiuNJTpXTNjTvbHJoLHf2JUJXx3lDI6Y/NiNUXUBNBhwh\nv94/0tJ1IJCaaSzRHjMRydxa0utnNq+yIwTqF5VrBEE6NzVEFhqeaT5zD+P8\nc9uj/3qo41d0Fnmi4rMErOd3dIsiY55S56Vp/snTN/nYzn5lM+Vw/0Ay5Az9\njMUuStVc5LkzOElZCk0ga+SrrprKIHAQrbaREQmlnhmYTW+MbFh4iAmMjQkU\ne4X+aSZ8T3heVI523L07F3w2f3PeNtf8gCZVPbVETYep9RN+EPxFVp8vhRre\nXz5z\r\n=Jic9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZKnvHtwXu+QJuLBCbTam/JmLw+EYtrlmfZCK6mW37wAiEAqXvstIEp3eZkDSbqr6DtccTR7v9zlHdQBbBQYQGR3o4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.4_1628588228302_0.2849045720592831"},"_hasShrinkwrap":false},"3.19.5":{"name":"react-query","version":"3.19.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"69f1eafca0804875f39a1ef1801013979b6c9bbd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.5","_nodeVersion":"14.17.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-RMYc8ybtYRSagvOISL2Yz+GG0dcCajDYUzBv/N8jABmudzq5bqDO9yOSqOgXQRGzngIPI8321fzQ85SG+kq+0w==","shasum":"eeb8b122c075abe69775ef3b5a4307f5cadfd320","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.5.tgz","fileCount":202,"unpackedSize":2120378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFDmHCRA9TVsSAnZWagAAIeQP/22HidXIHg9T2rzVzY9J\nhMLrScnBU1XlDCIwlbAG+flLa5kEhlwlj9r4msoP9cjuirgJ7UxXCFMs2Z/5\nCeaRaZjkdEvYFtMlkK+smBL0Fv3oGscn7jFtnnH2JfsfznZoYPa7tuIASmbk\nLYjv8+LED+S5+kq+FJSjoUkQsS3m1K1bnKQsGwBPTes0VjvHhL78zn/GNbcj\nyy85kcOl+HIsa8vKz1rLcrFQSWd0+NNFBSXd1h2Bc4YFNDiEKs0aBFL7Nykt\nLkqcmsRwczHi4EBXd9/0rahEd0y++VpyOI2z7VxPmZlQyqgnnkzWrxhicE55\nMFl6wFzDiLW6MRUpQL0Bi8ixJJTIJ5z6/TS+JXoka/kjPTlA73qnet2pE7m+\nnxgxtH9D/zEWDWH1stfMZOX0BCSrSFkux1g6p/n6SIcGVstU8MbzlrD7JnEy\nHAjgz9Kioq4/Yaz2hlPXJpR7hs2aH6SwmM4IRjJOD6nfEdcziHA6sRuIioal\n7kp5zQRdloS65wYgU5tyDSJ7p+hJUV1ABD1Y5YLS7RqWVGsNPpLl0HLMjXi+\n15bmuJIEJZemi5IuNftOuwW2ReVpbiFSXlbho33csxlZF+UegZEsSIuG4gQq\not3jYsbZFSCem8InulWHJ/7vJz1+qZRZVhYJchgoizEnOiPIQTtpUYGPptfV\n52R3\r\n=USr7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcGRgPfY82ziAfZy3NIT9hNIRVmtJjBmW4hAClCb15DwIhAIKJTG1AZtUf8e/oLaICW7z42u9ck48R2UPsnad9tcdU"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.5_1628715398954_0.8270222096065685"},"_hasShrinkwrap":false},"3.19.6":{"name":"react-query","version":"3.19.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"bac853fb3c5f4f2c1fb1fa15bc3be9368494ef3d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.19.6","_nodeVersion":"14.17.4","_npmVersion":"6.14.14","dist":{"integrity":"sha512-21WfvDgBXvPzJtG4gAxi0h6ipOUNPKZGR3vZJ17m/kHGbj9g6rPblc0lG4sY5oVLpM05LP+BdDt/IYfy0IIKmg==","shasum":"02bda891a3f0a0534934d9024350d655b268e82c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.19.6.tgz","fileCount":202,"unpackedSize":2120341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFNPrCRA9TVsSAnZWagAAeHYQAKPLuAJsQ/D1QKVCGvkT\nflx4IiGbgdXrThJYtvMp2GnAV2PSNqNmpzY9fCimv7NWPrkQ0Mz4tDUPGTOD\nJ1UvUl3n60fyywQSkmxrExi9+KcIhoYRTMUS56bLfsMrt7xcxWSy3+xS5QoU\n6Ain67UlYcK/6bElLfUPFc2pF8GBoOv1h5S9ZuNqHeO/xezDu3/wruv+TDWE\nlKMOysYNLWIckMwVpBh4xSvGzPffPUunbSxsnzuJbVj8HXVdsUZMu9BEkY7B\nSo9LVHrhlwp8H7i6YWP11QPWqqNosZ9nPsBS7KyvtF380spe+QJjPZYIB0d5\nbwfgGpuNCyfT9bhXBxvxufg0ahuGTxPrz/mNLlyYVVdLGxZlEnrV5sXbLVi0\n59IMv8eA1xAD7HeGjf7WGQb8nb8ZmP6HL6l0/0Uszaej7KrT73wSZKewiBOb\n7pEOfGQSg9eF/QkKTffq2CJRZAQ4LW99OtQpuZTwEkLa2TG1L8lLxzmqVmXp\n6QYZGc6QLsvnxbeLveMO6f9ZHfD2TmySAkTQbDipm2zYxDsOOFnOmClxmbY4\nSVtiEyc8sKzEJbsUv97fsigWsqL2s5PUmtTGQFf4vgErxNDK/wBgumsjno5F\nZ1vkmK9xacQ77ZPOvxllhAPZukF/7+AszYlyDPLp4VzsBliEWWGp+AfVhrbk\ngzR+\r\n=Htin\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVloTMc8deXZb4VA5Efgh8HRTb5Bj+gfs/zsHHgiFcmAiBe7ZLNG1VkUkg3YJuvJ75YVzBU4oiqIr1fIy6My+gsAA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.19.6_1628754923215_0.14410134148202314"},"_hasShrinkwrap":false},"3.20.0":{"name":"react-query","version":"3.20.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"f9b23fcae9c5d45e3985df4519dd8f78a9fa364e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.20.0","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-2SZFCGdmDpNqASC3LjVbOtUjzPqNabYdXnSC5qF79FQsCdM27jtadB30MHiqRG9Fg6FjPBUI/1qhIf3sa++ndg==","shasum":"47947f1e4d4637e452f593eb9bb10a1aeb1f45bc","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.20.0.tgz","fileCount":202,"unpackedSize":2135216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH7rdCRA9TVsSAnZWagAAOGwP/RUerEjK8HTUoe0NkbqG\nrLWsPzomqigfRhIr0njPxdBySEf4j52mPmllw991rtQC+jlRb3VkpzgDk+0F\nPoVKPg7Sy2kOBbvozjIAa8TOyTbEfCjKJUEUt54sOflI4eE922ttjNx9E3x7\nej2EnvM4bfSBfqwbAV3xEgGJnfziB0qmBfs5uP5B+jvAovtAukOtOT0p8hK+\nzxckyQp8J3YzE6U4PfWWlwoj9w+8YCkwBL9LhG2WGM7poqMCZcw6wQhabV/x\n4XGhsOU+UBOVhSyU0OPqiTIU/lFxlwT+ZxlE7KHWUUJ4c6AyPgsXfVnT5MAM\nwePXQMNR744MSyR8andY+fSlSI/XGdwVr8tf4Nuz7Ay8z3ee2FyOZiucu1RU\nxadLSDoiiZY3uN3PlptPSGIDYCLt+hXk7egAZt92eoTzoSJptU8c5l7kovEc\noC/NFT1GA9XdphJtIdh/lPRW5L7ssB9IZcow+klMuRYJbBP22I9upQ9YO+Be\nEwaeF6xVxN8J6PSHRs/08X5HnwDPB+07xUL9uALtDCBOFNSjHg5c6KoweVtI\ngfVkJ1LIRLC1D7+D4flCzPjkwHBNjoVux67g7iJ1zpoWqDIvRf/9uKIUuo4a\ny8hihCAZC+8L+FhbJAq/fa7uQ1s9NwyH6VoQWODehshcwZIhYzsv3ahEAEgE\njacR\r\n=YWR3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqezJPpa03A2IOtIC56VIDY5odjOg9ujNYA8YLnNyGUgIgF9/jc12uKCwJ+KxcaW0nUvjrenkG1g0QVpyEmsC8vj8="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.20.0_1629469405735_0.9675738255540471"},"_hasShrinkwrap":false},"3.21.0":{"name":"react-query","version":"3.21.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"afcba6066d238b9ef34386e6da4f372b3e6f7ca0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.21.0","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-5rY5J8OD9f4EdkytjSsdCO+pqbJWKwSIMETfh/UyxqyjLURHE0IhlB+IPNPrzzu/dzK0rRxi5p0IkcCdSfizDQ==","shasum":"2e099a7906c38eeeb750e8b9b12121a21fa8d9ef","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.21.0.tgz","fileCount":202,"unpackedSize":2138217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH+jrCRA9TVsSAnZWagAA9tEP+QAssRKGO1FQkkUX+guY\n9dyzVBZn7su0tbkY5/RuHebC11fbugSbFhhPbFSxepM78TbphraT7LG+lOL3\nkpgUm314XEDhhWRK/VStc/F6WG45Qtsr1hYu78CGTHqAhRHz9IIn+kHMH/Br\nIdNyF7wgXDTp7u36JF2zZO9vJ7Ty+kVl5p+KJkp9PtrmKaOrbVkk5oOzd6jD\n+otA7wYVKCKJZRi0RM+R0Yr6yc59RkLfS7WFrhaCri1ETf1tkvsLfybOKuLS\nAWuO3BxfZeNFbGuTrw2+Y3mfncS/Xte8YAUXqJdMzOgNbQAKELRz1wcQZxOp\nM2e9Mu+y7fJiZl+q6c7Xy/N/QSPGUiwxIlxRbTICRnHwNN5gmWZQRSZhQoef\nYaNOKquemTtwFuOm1o4vDIi1cxOkmKvQt7c5AsYQ/1MrjIvOIge3mjUYbIK4\nWHfe6jbpd9egOWRJJ8KeEJulPbKmX0e9JN0m4Ka9okLOddIFWcQhPLVLK8wP\nDOxVcbV2vsxABLLBOhoQw5xZon5D5iMiGtXg+jXXeZbzbQ7bSdfu1NCTYtjy\nQXTa2khbg1zVqPTYc0S1i/xNGRiguvLlCG+kYHHhIcZ48inBgj70LDuyHioc\n7eX9A7Xpfn9ifiKS9XsSb2rdHG5SYu6EB1J8abggWBV63NhXyTwjtAILWO16\n4xNz\r\n=3AZg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8ZXaWhsbh7HAdaFbcG4L1myEE6bqny7iJBVBlz7ujfAiEAizisjEQe/LQDILcs74kVws+gpOixsze07SrblkRtLY8="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.21.0_1629481195496_0.44276835780865653"},"_hasShrinkwrap":false},"3.21.1":{"name":"react-query","version":"3.21.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"b46c6467389538ccf0fe9e20bb772a2ac5b42458","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.21.1","_nodeVersion":"14.17.5","_npmVersion":"6.14.14","dist":{"integrity":"sha512-aKFLfNJc/m21JBXJk7sR9tDUYPjotWA4EHAKvbZ++GgxaY+eI0tqBxXmGBuJo0Pisis1W4pZWlZgoRv9yE8yjA==","shasum":"8fe4df90bf6c6a93e0552ea9baff211d1b28f6e0","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.21.1.tgz","fileCount":202,"unpackedSize":2135244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhK6vbCRA9TVsSAnZWagAAWDgP/14gNlP/2sMsHWlN/dpS\nKdlgs3NucDNYEk89/UjBCn1gjR0cMQIHnysW1CAKZsXTH4K2jwxBNyYYBEwz\nHo8i74/VklMCdFP51pS3uNT4NRHLPrvK27Ioq3XQveoATsY+ONe6FfvHIU2m\nk227vXYG1QCh2A5VHAtTTk83h1+CJbs/TAO9FTWLcglhQSy1Yg7bFnVp+lhs\nm4WFdzWafdjImFYL4I/P/L1t3TmeTqFvJC2HKZsw7hvjVv0i4gahW1jh7CLA\nrrz+WPapuPyBWQQfFxUSQi27YXi1LE175L8vtsPpsjIG0dvAyZpoWgaaJTZx\njBtjLRDKS7gBpokT7nwBJhD+hWm2eKvHwbxRQfMxJTrUmlj3R4bKKuG043PD\nwzdZ3M0N/XnOXSNytmLnoJcQcH2+6xvMyN5JEyFAEdGJmN++VnzGn+kCJS9E\nVsREvS6ZXaJ9GfC5yiP+R3k1oNTLYWTx3wI1oiUO4a9Jm0NSWnVng0o0sl0p\nll2mqy8b+V6tC+GVq+ut61WUvvkmzhsw2gXhyyeDE6l+jOa38jihk/XlWvWJ\nuY6kfBmA19mTusMF3VoeSpJNJBKnaOEJw3gLy9/pRDCJWoOBPxPrre+IDMG+\nbGiKg+/1y9MlFpKc9wALEXPIEB2T7dVqfXIMqriYPkM5v+UOc6QGnZ39Xdgv\nh49D\r\n=2q57\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD16Ie5JhdfRzFIKY46ZuAWd/lUpajw5EV1JOdKMeAx9QIhAKeN4DhgnYp5u9YeSemXpfTQWsKlANcmJjpSuk3HTPqO"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.21.1_1630251995555_0.6383907044537036"},"_hasShrinkwrap":false},"3.22.0":{"name":"react-query","version":"3.22.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"19861272f57da5e587bce5bff449d0c3020243e0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.22.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-S1vv7N7np3N9MCCIE8vNGG7LpPhHDn4yQmY1sUZ+ABBuSU/h4Rtz+0qLpKh+Vs0/icvdsdrzI2LA2p0yqnLzRg==","shasum":"f59bbc48737c6f34070aee85037caf5a990de565","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.22.0.tgz","fileCount":202,"unpackedSize":2131763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNvVdCRA9TVsSAnZWagAAot0P/RJUSNnnxVmu4banTbfB\nabzdM6lXbulOLwXy4x8N7C3OFkaBPr3IOXCFF4nIN35mONszpamiGsuqmHKy\nWmMUzz96Ml04yDcG2o4LG2qL+ulEU/4dYyVOQp9TNuo79e004pp8OQFzkI2M\n8sCM5HNjfbtZZQVuiSt/1gpdSnYvFlr+dm4y2TqGMaCT5lm2/Th+gkyKK0yB\nj/DUL2VgpG1NtoX9uny8qUx/9vaqabogDYwLRN6fyhPssQbcMhaQVpFVuGc3\nhGpIL3FmcyrgSdvWl7BvIwsl9VYrTrDWlTNA3dtTXxuoBMNvXWMj92EvMCi/\n/ay//itdOdRAIGwd2ng/pXSM+HBWLY2QuI020867hIvqXDRUDPazQv60zXdZ\nCHMgScOWgWX8jH/fwFQdN7lWTpnT2WowvLcgQbBURbKPD4z6kTjJZrWUctcy\nmkEQ6PYlgdmBPj8JJNbY0DCCzAcqfpdw67rxYiHp42cJpotwAXK28XdjA+F5\nvYlqUngZFqOL2FV6PUbjcT5yOhPSO6Yo8QkJcvsy8T7I7ktCJ2WrCBnrE8Xx\nd+gSnagygFfACdfVT1gQCxGA30szFtxydbas++uhiGutTY3t37WcMhFL8iYV\n0UkMpUrrtO8IUsQO9iRN3rniG9IeItbwFs6ok29c53znTjf9oZxb+trqQ7Rg\ndkQe\r\n=MZri\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk3k/tW5XwYz1+KuLDOhqA8udtImMm2jIg8OFRh6ZfPAIgZa6Q2ulF7bQ2/EO5Bv5veByZPnNIu1dN2cA2Y1H2iCw="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.22.0_1630991709388_0.881031457130014"},"_hasShrinkwrap":false},"3.23.0":{"name":"react-query","version":"3.23.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"ee7ca0bf1e813fd727f25abeb67755f43b636b3f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.23.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-6xae8dO6OOuK34zoQ4ZIomBdhKoVYSQAOsb76L4c+k9G7X+VqMozyTcLvd9bgm8gyYpMNWip6bcMZfLjIbpj9w==","shasum":"881b76fdde2788c0d3529f52292ccc0375aac7e1","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.23.0.tgz","fileCount":205,"unpackedSize":2136682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOHeTCRA9TVsSAnZWagAAjy8P/RPjC37LJodHY2JzrYkb\nlN/iXE3V2u79ew8wHNOOAoancR52BZ7Xl9QpEjK6H/PMZWV9jYMhUpOTiqPo\nT3mlvSz3v2Cf4iFptEtnbfCZ+stJ8NLIixcPzYK5TJWSROf/0IGnqOgd2PKI\n/7o8W8N6Vo5AxRK9lKmUPpzzGobHoKCYsW+EzExTHd2kT7wGdjlCKEk3BTLM\nD0cSGhYSoGEUaiPFi/raKm2HwQaOISA/A8fXrq38Vqd5N6Z9fW1wXHAlxiv3\nGYW8HaLC0V05jXvIEXk4wkp0bT5sRAZLLjQIB9HbAMBo9JR2xY3Sf0IKA20M\nmhQMNejRhuELFkd5XToXDn7swvS2FQlLTbxruFe/Jp3Ug5X8ZyVWZ4DkHOLq\n+fI+EiqrgmWKsK9wrKSsxJaguj2j89j6X1crubbKPFEc9FseuZIuALa/GKrX\n110hp5vAJAEn2fdF5vhuv9xA93e4C6RDLr8pGt9ddW8FL8T5yhsV5ik/3T68\nCVsmm0n9YKSvkLhLREuInQQwOiRT6OzkIM8dUSr2AHTcG3MQbfZNg69NTsuO\nkyWH9NYlvL6Hj+FTUF5FyWcLkAIows1c6gSNsRtqzznXkxTnEXKCatVOwfPu\nWFD7hw9ouRpjeET35s8+rUI5TGrdcy4yEj5wOwdyhAXc1y4PSdksOXW0Khn5\nh/IB\r\n=uqvi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvpq12hKRhD4nuxC4UXVbNTXIehEZk0Amd3VA8K9f+fQIgAL6izxWYD1x33ZceZ0okm4yNHFVKakbt2o9scDTtSLQ="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.23.0_1631090579112_0.1899460525936032"},"_hasShrinkwrap":false},"3.23.1":{"name":"react-query","version":"3.23.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"0ec2a495e29b7d258201aa120bb097f5898171d5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.23.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-pq0vEwB5PNGvkWJNUk0qPpsxcDmhzY80ZLNPLIVQJ3k2UyXoGccPTrgOIj4Kz2TrMfgvRBTNwiSxHdaW7Sl0WQ==","shasum":"cde2d268958716d34a23e62aabba668752ba8f95","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.23.1.tgz","fileCount":205,"unpackedSize":2135769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOQAMCRA9TVsSAnZWagAASx8P+wYy0Ncf6zDkNf4bIKCq\nXmi7CZ4lnxsBYwTod/sPRKbcLhoTLjpCLX7XJ76ptBtJqGCix7X4HVl7pvsO\nTLCnNrydvP39NZgenMuOXymwL7PoWquqL71mqsIKNT77EK8w/3WJ4XcicvF4\nR2VaU1j+WZcOgVXzlSVRRp+r+B2nnGByGesv2RvomBpWjGfVKnqxqKaC2STX\n9EcSn88uAWdnCZFTnATfPfl7vm4ApQ6+QNPXqRbyykK7I/q0HGeYq5ISkmcR\nTbyyUw+LpfyL9VAQ0U9wZwZ87wnEf3Z3DaPGBG4KZ7cASTrRJWIusDkxVAdq\n8blLcnyvkBFIUADAqBLgUIXRy1VKn2kv3ZrTrtGH3hYPCPOJ/zRBnIzqeTBu\nv9TP48wCgRg2J61fNNcGo1kueTRsTiiRrVZwt1Y9xnF6s7hT8eZ9Yu1onsfb\nyFi1WgT9RUZpWkae/oEzCXpcoqbHhz9dSW0H8sWc2tp3lRGt9fAGx4eqI3XH\ngGZcUVgCu0OlxIgxP2kXjJQHOG45Pjq0Yhh50Jt6CD+2yNsMpa0fx+kpkXfH\nFS7iJrqFKKZrORApJzTSgvdbhbJkAKlhZAHxS2TWqfb9fRMRqmnFFlOjgImQ\nzBmUjbaFZolhr5oR0Ut1jJYZD5WsGmew+RkO68L8+gP7fCJAhmh0ROImohEc\nh3mt\r\n=AXzJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGAmAfjiGhGfsjWmqyCHnvZ9jGcqOILMzfqg+mbKJhRrAiB3OSlo5wl9bY6JgZ027Zbg6sz273MdR6cOBlw8Odb4sA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.23.1_1631125516036_0.015707639404535678"},"_hasShrinkwrap":false},"3.23.2":{"name":"react-query","version":"3.23.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"c956f1af937f5f5186c7426dee1b07541264646b","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.23.2","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RFnJh1ZKj4DImWR8SijHnUunYk9WC7aoHuSqxdg7kV9IBq4IIUVbFwix5sYFk0CfUZTh2F4m2KZMlguweLzj+w==","shasum":"1f95a5af7d0797370bbeb916d54fbb516bf9f1c5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.23.2.tgz","fileCount":205,"unpackedSize":2138815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOhfcCRA9TVsSAnZWagAAdjoQAI94I+CkgSslweeenIzi\no3E207c6VTHc7xEz0wgFd7LTjmshn43uEW1qHLsnrnvVn+iwYivWI5TGFqr/\n/PGCriClLeARs2P6Gf6n4GBeHBYLt9Ga9lo1sdQuGL5IFl64PCjWtnD3cyv9\nhC3AN3cLK3VOI9Ti6LfQuH0jvHdqq6zHTRKyTTSU4XNa3hy/VvInXm449Av4\nvGR3EA87/8Q5zjmcPmE4E0Ow71kH3AwmXhizrT9VzsM308aiDRer5cBYrANA\nzInhjZUv+ystjgSVIPNzoUKTR5yTbDcGlNwl96T4/Y3gCGeufdoRVruVHlLv\nODUL0xr20tDw/WxWYrqYKP2l+JI8/9WUKwW+OWEAt7Md/Xxe9UTfaalhYcxh\nb4NwiXig8Oj5pqsF3D2Ml3elHU21jT+nuEvdpKEfHv8U7KjFPWmItwXka8vt\nZKyaX4mvIdLzwNPOWFAi4ho9L7/A9JEWZ5FiRC7au0D5MOur9VCiHPTO/0Qe\nYS8o1YTprPvfRNVRDKiFzMxr1PFCnKewRy2C7loJTCdSuRx/L9S6r/Y0YmSF\n2MJzCj940869Fe3H+ZMJQfjNJGB8jdzQks/F93b+m8xRXZl8T8TGv9Adq5i8\nQbH4Aij1u1jAodOCRAgYIpAVD3aNbBQLxDQpXXcAmwWRhhYI9cI7WM7kYMR5\n+/Po\r\n=WvXK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfkeaOUFb8Wy5UbcBV8nlwBAarm2Gd5te0Np7o8DxEeAiAtVlakgh9lMPG6rFKXcMWn757/ZVylSYZkGXCnYZ56pQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.23.2_1631197148564_0.025330000674659958"},"_hasShrinkwrap":false},"3.24.0":{"name":"react-query","version":"3.24.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.0.4","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"gitHead":"1896ca27abf46d14df7c6f463d98eb285b8d9492","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RSK/0kicMlNaa71/j75qSa6vJwZfPSFIuu6zJJ6dOPp+n7ZTvLQDPDbKr3ZaT+28V1AdMuGYb1ZI2nq5icS/1g==","shasum":"2200cc7a3a58705bb40817cb6dbf0e43111f37e5","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.0.tgz","fileCount":205,"unpackedSize":2141640,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEni5wf+52VpjE8+g3otmATE2VtKBFfON9Iv2gSLOBjhAiB6RivrEKan1iFMmkBmgnel2d+aa/PAD53BJB+R8xQITg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.0_1631986670886_0.7650834606134209"},"_hasShrinkwrap":false},"3.24.1":{"name":"react-query","version":"3.24.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"7aadd6896dd8a36e3f4ff8e7153a080528807d03","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.1","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-NQQBJnbdKel6eCWLgkci7WJJ6hO1cSi5ogK5b474MTFrY3lIMb7SL1WOj172t3sqvnDVe9fJFAEiYVx4qoUIaA==","shasum":"1a5e1d99a1d6605152671397ba30be4a61b2d5f6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.1.tgz","fileCount":205,"unpackedSize":2165418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIh+tY/83KL2SLQWg0eyTJ5NKWdvEUbmSJD2/DrfAkxAIhAMaMeX4mFp2oNRArRdUOOb6mp7SU4u1/g2rSoYxu/OwL"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.1_1631999179440_0.7513052572415475"},"_hasShrinkwrap":false},"3.24.2":{"name":"react-query","version":"3.24.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"1beedf9516c64bbcdd38afcc241276733fb2cd1d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.2","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-rsM9PP/c/pDlaMB9Z7KQPzYgbWwDiVZuz0hiYACzBp4+LLNPynIZAqxfSswen033Rl0CSBpm6yQ6IDD2OL6l+A==","shasum":"8692573601304eb81cefb20f1b549749390ac6cb","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.2.tgz","fileCount":205,"unpackedSize":2165779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOsHqm/V9AZrHYdFBHOP79Y6FigAciHS0vfMNfyxT8PgIhAOgnke9zKXVBMDhEMFVYpueSKElr9xBC5+2wxPI0SJ2t"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.2_1632032122961_0.3618207144599268"},"_hasShrinkwrap":false},"3.24.3":{"name":"react-query","version":"3.24.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"2544f079675f9b43598447c77f81ecb5397eaafc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.3","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-JipKpn7XoDVvRWwXWXKSJU5SbNJKqspx9IRBntaQt1EQOBXe9314Z/8cV9YXXbZIhzrHAetT3X7tRClZaYk98g==","shasum":"58c538fb55386fa947bda88acbe616e02cb5b2bb","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.3.tgz","fileCount":205,"unpackedSize":2165777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWZ2waq5OY872CnZ80aeHs743aB+AjkIy92eKsuZE+YwIhAJuDDaiEe+YgM2tV2fAnwu4mYLguoVdWRvz2QN+5gMZE"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.3_1632073156207_0.6933766454977874"},"_hasShrinkwrap":false},"3.24.4":{"name":"react-query","version":"3.24.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"4115417e3e3f3cc8683cd9a52d7a8afa9d9e8ed2","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.4","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-p/t18+FN5P//bk/xR39r4JRWEigYzia2+J3lmKWSZHYbcivQlygJixY+81NiTNxT1P+/P6cl173b1lEbh1R8yQ==","shasum":"20d8469cf7d6dda7c778ba6d374aa748e97e8381","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.4.tgz","fileCount":205,"unpackedSize":2165867,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCE4A04zM3tyJAMC0MG/p7W/4kriykQbBqqqezqbfPMUAIhAPG3gjpkzLkzqON2CQKBW5LeKgDT7Aak1Nev5/dSVkWp"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.4_1632336249958_0.06416353229525651"},"_hasShrinkwrap":false},"3.24.5":{"name":"react-query","version":"3.24.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"0547e629520f72819edc655b7274d3949b3b80ab","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.5","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-1kWRBWOi9Nv2qbpu9OgycyWVd1K6lIdxF9FJy8lmhB224OsrT4kr6sKhF6u1gnE4KsbdtMdZU97e+64tKZtZmA==","shasum":"d3128a86fa5830a9b70a550085c18df3d18bc470","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.5.tgz","fileCount":205,"unpackedSize":2166133,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDALVRpwIiJC5tLguVM9XT3RaY05CKUlRT0tNor7L9q/QIhANKc86C77cYDj0q3GUSUXLP0LWtajgXo8xXyGniDCmff"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.5_1632941551764_0.8505146098829972"},"_hasShrinkwrap":false},"3.24.6":{"name":"react-query","version":"3.24.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"36c02b6f3d5842c050ca6872bcb084eb216c8090","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.24.6","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-dMLttoN7mtqsbNIzf0m46FD+VIJMNoDW5ZbN6pedDv/F6Kn/sDtHLn7tUNmhMjU6K6vfa2FBPkpKEAjWNA5waw==","shasum":"0874ff0163a14af58f3db4ed10bf6d51ae9da604","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.24.6.tgz","fileCount":205,"unpackedSize":2166418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChAS4gMpxNwWHaHji4Cz4FgqYVYS1i6HevI8sEgrDsgAIgZirA1DfZncdcbJE4o4PRr8ZmaWmnq0gimIJc0Yi5sIA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.24.6_1633182449682_0.9848517886626273"},"_hasShrinkwrap":false},"3.25.0":{"name":"react-query","version":"3.25.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"9e414e8b4f3118b571cf83121881804c0b58a814","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.25.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-zu8HAJL/TGz/v0UVAb+Beb4IQgXW0jYNHuwUguIUgsV2EzjhYLBYeipBnJBMQ1RO4bgqbF05+e7HtSoaDijJrg==","shasum":"4f67f8061e054c5c971cb6e36ec3d5703e780210","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.25.0.tgz","fileCount":205,"unpackedSize":2173044,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCExGGmL89XEptbQ6aTIus5lABE0D1sKFcXSdfc6V6dIgIhAMQ+JCyTaybu9hPioAEQpZHw1SDGPEeHJ7DGt4kcUQWS"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.25.0_1633191613717_0.2540989364544537"},"_hasShrinkwrap":false},"3.25.1":{"name":"react-query","version":"3.25.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"a85d822e24e64713d16b412a05cb2b26efcc7744","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.25.1","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-tGZkap921d9dJD2F8+NpEu3djLRP+tpZKHKhQvqUMYMfWT5R18iRtGAG5ZeUMlRKuhzNaZx3cHiYj3DsyZ1SWw==","shasum":"221ff17406518a7689378dcbbdc986b0ba2c3919","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.25.1.tgz","fileCount":205,"unpackedSize":2172821,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGmp7bBz+4xHQmR5cGJivUrVPg4004UW0sgPqUAOGU4SAiEA2bdb8z8nxK5XSF1vbRyeq/Lnyh9A35LaJhSpHXuefUk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.25.1_1633330145936_0.8547142142296253"},"_hasShrinkwrap":false},"3.26.0":{"name":"react-query","version":"3.26.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"115895fc926db32b1731a01b446f2761ef533b84","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.26.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-wFPnL9Y+9xf6gJHAQ8ue+vBurciJ4cfQL4dhsI0x3YyRaEXlyklUQpJzbR63CfFULVekP3iWoyFxhaNVS9RFDw==","shasum":"7083a8622afdf946ee6d8f3a6d94591b980c1aa0","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.26.0.tgz","fileCount":205,"unpackedSize":2177407,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBekV/AbVE5GehyjRWo9X6HTPK8l+U1uTLGTo1J8mnjXAiEA/X/1h6yQv78KhIfyNy0/iBalfSSkjojjtEbI9XNJMiM="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.26.0_1633764461354_0.4822808830594989"},"_hasShrinkwrap":false},"3.27.0":{"name":"react-query","version":"3.27.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"255f7c66a8d4a5c33a3b167304f787c7c4acf6f5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.27.0","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-2MR5LBXnR6OMXQVLcv/57x1zkDNj6gK5J5mtjGi6pu0aQ6Y4jGQysVvkrAErMKMZJVZELFcYGA8LsGIHzlo/zg==","shasum":"77c76377ae41d180c4718da07ef72df82e07306b","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.27.0.tgz","fileCount":205,"unpackedSize":2177611,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWmDWUbW0qlt8t2vdKZ/61qsGIbH/J7tS0X9IjGF/LrAIgUAAJnpiP4Uok8flIvlInUUGwIJpqLlGcWGnnI9mHeho="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.27.0_1634294851605_0.9822680509110338"},"_hasShrinkwrap":false},"3.28.0":{"name":"react-query","version":"3.28.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"2c1d74baf79ac2faf413eae3263e8c3348aca1a8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.28.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-OeX+nRqs7Zi0MvvtaKxKWE4N966UGtqSVuedOsz8cJh9eW195fgtYZ9nW3hZjIPPmeDY1PkArLUiV4wZvNRDPw==","shasum":"1bfe12944860b2b773680054de37f19438f59d1d","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.28.0.tgz","fileCount":211,"unpackedSize":2191725,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpXLNO5am3ICJ9yfiEXMqZeKxitHDeHBHTHD67pJbCpAiAgRCGgrA0hRA+wkfyPPJG31qjGC1es1ca55Mu44VwV2A=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.28.0_1634998563224_0.35434875939598975"},"_hasShrinkwrap":false},"3.29.0":{"name":"react-query","version":"3.29.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"gitHead":"4472baea1da2242b2ebf4491a1005516ecf7de6c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.29.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RD5F8VMlIzYYU0rGM71rtGShut+RVwRSTQamUU+4cpWaIaRsUa0nIfXyzAgo6ssVrzGFCrAMEm4LPSazR4FkeA==","shasum":"242adcb91fdcbc3ea82c11c97328badb03f1b795","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.29.0.tgz","fileCount":211,"unpackedSize":2195004,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICL9d5Hp8LGx4Kt+Gb+l9rkf5CRni/9mVyBoZh8d3hIAAiEAw4RkdWEiaxEgF01p/GAeSe0QH+h6bQ8cLGDtMeySDtM="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.29.0_1635276766177_0.5412046553925527"},"_hasShrinkwrap":false},"3.29.1":{"name":"react-query","version":"3.29.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"f21d932142e8618995936c12c5f5696aa8993473","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.29.1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-EKhI4YokmB1Ccnv1vu8w5L9VpKUnznzLLpaMgaJx1xEnBvGTdUrpNFFxuGiDuiQOg3hi6TvSHVTfo/Nws3kTpg==","shasum":"d228687ca354b51a41b08e7fabb45a88f3b06357","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.29.1.tgz","fileCount":211,"unpackedSize":2194885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNItIlyiDKpQW4E54s2w/ATlm77PeQ6jRF4vovkTFlPAiAhzdIgq/GFIYVJc2I6CtgFZtGeD6ZBo80+9FG0eAYqDA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.29.1_1635535326381_0.1453974545841732"},"_hasShrinkwrap":false},"3.30.0":{"name":"react-query","version":"3.30.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"e7a3207f74b27bc112d6ab583831cceac60f94c5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.30.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-u4Xcwb3mBecDWXPJk7eXGQ0JKxipZbkf69wS2B6tEjPFVT8q0rz1nQ3hWl2B/mUWkkY7WDwndeGJp3PhYgsbUA==","shasum":"054fc0642f806ba4e8280c5eccf0c907b12cfdbf","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.30.0.tgz","fileCount":211,"unpackedSize":2208925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEUlr4nADMlCIswQxKCw4iZm9zsCjOpu/0Ohofb2lD4AiEA1Aqb8LxNtBZFHfrVc0KuJ5+UVI+TTYJK8mMm+lMqiE0="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.30.0_1635618661113_0.9401678882800484"},"_hasShrinkwrap":false},"3.31.0":{"name":"react-query","version":"3.31.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"8013d4a768e1fabd30f349c1a5e2722c8f8a099e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.31.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-6NiXgjdXBKGA9ge04NI21uqTCIpH6qzR8AGGom/nR/emaGc//D9KM6C6+AEy8zLYl4RYjvd/XhA3lWME5kGMiw==","shasum":"297add9301d15ef2e004297e72a8e46f7aa5616a","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.31.0.tgz","fileCount":211,"unpackedSize":2213036,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaTg1ws9x0BQSv35GyuMvp+o1rLhPYv49tF8cNaZXwxQIgGUlxPCQ6i7/EFKHWMuXThkJu330wH+lr55g2kjzP9ko="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.31.0_1635710710077_0.5530025984236753"},"_hasShrinkwrap":false},"3.32.0":{"name":"react-query","version":"3.32.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"b52b2779b32b5cf0c21733e7d86b5882b8a611a6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.32.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-LAPAc3n7rBA26dZJ6OQiELtjOh5bp7kGEu+d6sOBr9lHtrpXJKPaRzHzPEF4lpmeGBT9D8iWRaJLbu1LNH5iRQ==","shasum":"01816e08fe118c59bba53cecb0471e020936c2e0","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.32.0.tgz","fileCount":211,"unpackedSize":2224909,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICz0I97OK3+aZK1cZjB9Dl01KnuvPiV+BSYbouiO5N+jAiEAokELIJVPWRFdM8dAbCh25qOjeQDVIxGpmn4QYu687jk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.32.0_1636217797764_0.7334929716832195"},"_hasShrinkwrap":false},"3.32.1":{"name":"react-query","version":"3.32.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"9edb305f45146b902e7dbaa81419382ca813c0b6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.32.1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-7UN8BYBaZb911iJUyJ/T+CjlBGBf5W8rcm3jRQ5wW4f+mt/onvRxJlB0U2r2fsT204poJt6VO0jPlm5dwu3PrQ==","shasum":"829a87d039ece85660d8911ac59b1c92d1879064","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.32.1.tgz","fileCount":211,"unpackedSize":2224948,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9yyBr1xrWVuTUYX+fkBiEv9FD65OYTfSMsTw59ZlV9wIgLb16cMDJHq2B/vPEx7j0FsQs+aoC9tdcBHhg3UeGv8A="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.32.1_1636235261814_0.46762944210031576"},"_hasShrinkwrap":false},"3.32.2":{"name":"react-query","version":"3.32.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"d3d7fc4451184b9744ceb1bdb1b351ca706aab61","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.32.2","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-g72+faJAwvYywXNrAbP+Iq5YJJzp94ADWHZMSJPi9I3DZdRDQ76gYi/YLzrA9fE9VZkoKz+OOH321eCsC2GPLQ==","shasum":"66da144c4b2862f06a679aea3790ccb17f099a4e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.32.2.tgz","fileCount":211,"unpackedSize":2201503,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrRkZBkTI5Ay+aQN7xGZYt7LI45SS/zz8Pmk2lX5FMPAiEAkloBMDiGG2cU655Iu5s08/VLxdhKQSYjHXJAIKnn0Mc="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.32.2_1636724324382_0.9909630425709108"},"_hasShrinkwrap":false},"3.32.3":{"name":"react-query","version":"3.32.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"2c36b6d9e9cdfcbcacff640e8782274c8e7f6e30","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.32.3","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RB/EOSdJkmuypDIARG/mVi2T41WZKz3tUh72HAUu1OA3VoFr2kG2OFZoO3ylMKjUYI4A9bSaD7wtYg4Nwb71gQ==","shasum":"a15035d0bcd632fffc7044839469e685c2dbcfc9","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.32.3.tgz","fileCount":211,"unpackedSize":2201466,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDj4c+P+3x273dKlMb44NhR5o36FlStVXPB3ZTKMdCTAgIgFCl/y9E7iiWFfCoHETXzDcJTGgedxI/45BCn3p5WfPc="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.32.3_1636751721348_0.34058118609113364"},"_hasShrinkwrap":false},"3.33.0":{"name":"react-query","version":"3.33.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"52854795b62946b4a4b73e4bddc6954db77e2058","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-lazqEf+kHFfV89PdDZnZsbZ+WPJsAKLJk0fLrev41lFqAzChZp317x/AmCBIe7NPysgIVeUL+jEOBZ4d26+E2g==","shasum":"4f36bb24a15bf22e39094484b9dd041e995a7823","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.0.tgz","fileCount":211,"unpackedSize":2202858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlRBPCRA9TVsSAnZWagAARO4P/iXOOu6mQIca2VejycV5\n8qAbiSxzCiejBDQLp0LoNHNY2kb5lv8ZGJVvc7W8n41QA5rwZJ9mK/5IjIig\nUJvoP9O7MYoTOFl4DBU/XIfiKmt6CKEoh9zUGfkixPFfG2RH2FZTyXONX5sh\n91kZNU15RYcY80+Iy7kx/ciBaJo20OMEgOhQyk+2tZL/yvcdrF6o/DD7j+rv\n8TJhPXjGvJCZj38xqjmbUJjZ8EuUZLzMHz9w05PIrQY1B2KT85XE6ASnkiQ4\nIr1MA2QbZgha3TulWAfqJNaRVN/ZG3Yna2rI/p85L576MQ7+NsaYvM5985Hz\n4SneITOY9UoL6aKZaehZc5i2kNuqCQExOJ6xhGWvD10n8cToXrPtKo+z3agQ\ndopwveP9W4iu8lg/t211Jakp/q5+J9Gyt1om3WXwhdCcQ1zkvxMxrcBrQW7v\nAobyrp0RZ7jwGnYqpm0C54Z4T/oesYuXgzeFefcE8H7VscpfOSwOMMgL8qnp\nWBrkFxFXuO0zvXhOwbLhfGx5kGdT5EtNjFvL2sFogXY9pra6mpnWpbvkDdwb\nV7S/wLnODyPd5Dc7UZEORj9ffSSqnX9PYLavbcOUwwrezoRc+usEv43p/vJD\nDDok1sQUDHQoqGPGGqToC9ckntxpD2rFK5/IEVP6dO3NsRsSgyuXxsatVhIe\nH1V8\r\n=QUre\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIP1YRuoWzyn4wyL28KJHAGTlMXrAv7ME6VHdu75JOXAiEAjuJmvdNEDa1YAO3poRkngiOYe+gb+bH8YI8iF9UNqNs="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.0_1637158991257_0.4268426665443952"},"_hasShrinkwrap":false},"3.33.1":{"name":"react-query","version":"3.33.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"16131c30f8a2797ffac9b0f2056464ec3e58c685","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-RtvQKhD4sJkoAGbyFpLmftGezz1KL19SeGdmjIOLUulyPTZuhcn3gemee96yjEiBk/9LFB5CuSiqywZY20Qj5Q==","shasum":"faae63724806c94b51c17c072b76684752bfe186","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.1.tgz","fileCount":211,"unpackedSize":2205397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlTnUCRA9TVsSAnZWagAAKIQP/2jDrOivh6eOeGkFjwFI\n9DqXAC+zNrT9wtJzx5rCABIm6tDCGnRMId5ZmFPAMBhmPnEaCVTImDC2VQvk\nJYBxIy1hzTsNxC/ixdGttgzDME3zOHn27QBl2ll9wzUvdRy3CT8Y2L911tE8\namuqUhNVhrpkwiiSUOypQ70yYXAzGmcqYaqQLYZMM9tIAOeR5Ko2RFN8kAsK\nBhfDsih32THzfNS9i3gclsTnhOc13DI3sa/A8/rMKAwezhNTmzJz0tv6aMTb\n7nOkrtOMg2esVHWKGvpIxPAafDRHoJj+6kRiJh+JNaWVPCSBGWvalG8aXCvj\nDxMNSo5RRBE7f8TEKLhMEf8KvwNG2/HyOV62AquxYsBDjBQA70kC0aRSTZ+a\njQJ81bfx4Im9rCXBydWQfqL0/6V4DYB0yfoqd704x5vM4FsIKvCe+I23HKA5\ntbSLWBWkGM1ueixL2ktdvcSm5Jpr7yOwVeGS7jaKV7GETkmxD5jLnPwHT1Lj\nVOuFY1wrHZ9+H2+g8YDC8Dndlp0VAOajABa9LTnUprTnaCTgG79nyiPf9emo\nDIDPf++iZLqGc/eiKpEyzVEjaiFjCzAu1vPvMqUGiLO/OU6mE06vImO0apjW\ng1jQ7IZdLMkxXoo48o1dVBnDZTB9MOYnRWTpxlQLMAffeSXBzMwxH4h34ILw\nSu2Z\r\n=cUXA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB30Y+EDX5jBWevDogf0Bj5twzXxZmpr7SK0K7vUzcNKAiBvg4y0eYm573qRAqe/VIlDD1xqEqfr7yRCacIL6Vj17g=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.1_1637169619947_0.9327518981840408"},"_hasShrinkwrap":false},"3.33.2":{"name":"react-query","version":"3.33.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"58dc1ce6264cbfebcdb76f0231867b149a6f083f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.2","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-hlGMl0FyFvO2mrgJObgKbJMzulzB4bzQZnh4ZhekCKWNhf0XH007Gi71wsaO+xCTyv8DNGxnrgBe/V+rvTWFjQ==","shasum":"b74f46ed35c6dcdbdb15ca39e158a4fbf1573737","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.2.tgz","fileCount":211,"unpackedSize":2209207,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmKtnCRA9TVsSAnZWagAABJkQAJwXaKrIOGHb/XSKoeJN\npCdXum09gL/gI7gt2jJ25zeaXS2NcDyPKYKKAzXnYkHFjHcdmlkrk4SNvj5t\nWfrV4GK8WD/hY7aOORbRLSE7zyiGfcpUxIRvNnS70T6Bns1tHVbE+24pI7ci\nNcR0+AwBfoaMMBw8TIwwE0pHYoOPJl7RhPFHnZ2OUjiMAwvmW2Gb5KV4to+j\n064JjLc92+T8vKTwR2mn3qfOSNxD+R1vV9RMwtLitq/XhVfIp/zv8KHnCBeA\nsn0zjWoF6CPPNKpeNhXbAajeyO92VABVV/ebMxbfSw1Qc+LlFPYF0B3RQ74l\n4bO1RQf7roFTjevcf7KVp5ATyX5exuBWKrjPiIvPwOjuIBtrODuEmZbBOm/z\nx7rx64kUxR4oCc3Zv8SwCaxVPU5K+yGidQD2QdNS8AEV9tSMYpxUzzUrSicU\nsBOp8TAzfpxVXpOAcR3up6viwBckAcEIDjoCnqH2Bo1RueRzxcEPaIpSX88S\nOvjNryKSOPbgJbFjP7PNtFy53Ajs59a00aQHKGeB3oJ+6pb705Wno7F1XkTR\naGuOWhMQN+Cym0D1cSeS27FadLmrZYEJd3DHJqjFuIUVPh12GY+B5ZQP63X/\nIRrv/34H+fKTyfI690WEmG7YVrqwDsGBlCKWrDlzIphdbx5Lj2q5sjbSVsxN\n4pkZ\r\n=6XB1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFpB61fIaF9vckEWJqzRl4uwVPI3Bb+JtNVvEXGoQnsKAiEAn/KDnlXjowOyMlZ3J88Y+TZLlLxpjHhBSViKzQmuBIE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.2_1637395303396_0.36431359230206883"},"_hasShrinkwrap":false},"3.33.3":{"name":"react-query","version":"3.33.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"27e72de2677031779cad62ae346a5a6a0945603e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.3","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-SDuNTszxDdZdA9n241sV9hDdHgkS5TzXFar+cb4IMO9t6MU4NakSRAuwlNNmpRcFR6/yIbLwICzvOlkAXaM4KA==","shasum":"3a9b12b2d189b88d950f81f31d7aa8224ddba1c6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.3.tgz","fileCount":211,"unpackedSize":2210023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm5/4CRA9TVsSAnZWagAAu3UP/Ry4cdJpkZE9JdhnREGW\nz/mVFzW2bwUPlQIxxYIqpLSwqKalZqV5yXVBbvdO5FdFJJPP9igeOMjxER22\nP+l8t4PzaB5PUJMKN4WCcsQS/ikjCHb3O1Y7pqGCTnOdtOGoFbtmMQXNZnyI\ns4lni7izUt5hUWvPvxfQ+QUUIo1v5dLy/hwp+UbCHR8Ht3oS73cNMrCaXA08\n+cVuAVaOYUAkq0zJdZHUd34St0T6J5GkNg748GDVNRhsRpWFfoOIJfQgU3pm\nYS1I+PI77aiIKtI3NMk2WzBNFm638e98Whd6WnI9lwOlpvdGIHnixbfPFb0R\nVUQSK6RA0NFexyLPtBiuPttHhFsWi6Eja/IOQyyRscd2mN9B8PGrWLiTnPMQ\naLkrhT4cvrPtq+afsh50jzXayqtPjVKCKufT2xaVt/M50EuhNYx/iTXJZFL8\nj0UoJol1DYNuWeO76shpbWDyPP9TKql8r3zw9vk3yML28ttFmVBJmQjgrJ6y\nXjrbit5+7UdYrM12CYLqe4kyBHmNgZkM6ZYS+JSaYjhgaXwv/vT6HqYF0aoJ\n5PuQ01Bl+PXIVyF282TKuAS7c7Qfk4eKyjbFj/rag3Og7wAM3bgETQrJKctA\nbPf/iwdBc5b3ex+p0xhmy13nU/gj0RaQ1uW8djvyXB4ZQ0gqFUS8p4p1jGRD\nKXgW\r\n=y/so\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4KiJYVJSqouRFDNVlaYoGsVd6Gd/dPjm9TDvUxr/6WgIhAKbHHjBZQb0BghgYeX67cdHtJDqh8npQLWjgfNS796Nv"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.3_1637588984163_0.45611593543714224"},"_hasShrinkwrap":false},"3.33.4":{"name":"react-query","version":"3.33.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"0aafb42fccc70799de4c387683fb826a5a4fab0a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.4","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-mNPnVjJfMQpflX7kU2JW6AR3Z++Xh0OMHs452WQf4uYNm21LU0zo+VjRGQtv0fih4gYfCGB7QJckRM27ywHnpA==","shasum":"486d81d04824e314bc46e587e272c522013a5ec8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.4.tgz","fileCount":211,"unpackedSize":2211767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm8kCCRA9TVsSAnZWagAAJ8gQAJ/g+RNTgQihEyQV86mU\nwzabNpIwCSQ7UTTwpGouXy9tFBQ1hl+VYLvT/gLeG/AYL08zyLYzy4cQXOa/\n92ap/3dgswcXzyVZK5zOUeNhHnt+8VhIgo0njlp/mMpNuPJaJ2jLYkML+HtV\n2BGwPOoClB8ABMM/jgqwcGhaxw8gdzjjgQaE2brCRzSlav3JWy6ga3AiyBTO\nfXc/f/FYoUDfAuN0Vc1OE/vOTa5gzFv80L6siuBWsBHD5fFAqal6qokM0wFV\ndFgD75cXDGHGWWlGZMwmiUWzPl/5jTmNia2IJHjlKcRbY6q0jtqrpB0FFaKf\nEJpRjJUpIivHW/9YStvGpXrQF6Gg15qYdFdRWrn7QeyJY0fN/7v59G0dgT8f\nwXk/VD3ma/IfNCfAFTf1Dc9GiZ64UjW2Lv5/fKQnMNpucu+BZBvaGoBXfTMs\n4eB5kplWC2d91dPP96+6VsUn+t7KSc84r3wCUXU+WA++uRYCykzWJmTAcxSY\naJ4Rl3HEST/AOpQCmEcqcvfqCDG3JVmdjzH+PCxUdWokaRAHnXASU/XL71Lx\ni+Sml20hISwe0PpLiR3zjdBTsEoxVTJdQt5lQ6vMAKOfhAw7qB6e/3wijJQO\nxjPcUXGwymzsra6lsg3aAPCnHYdfX4xj+4CUam46vMFSbu5hEpC254i+4tpE\n0drU\r\n=vN/Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWr1tZLxPl4iV/C/Xn1kqug1tiT1V1Mro1fatZZeMkWAiEAy2A1fssuaYCJktCFf/8++iaPxgRzxFO4plv6uEo17PE="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.4_1637599490691_0.021750954881762707"},"_hasShrinkwrap":false},"3.33.5":{"name":"react-query","version":"3.33.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"c6906b3c4d3fd73900610a0b452a17f2eb63518f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.5","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-gNpTzbY9Xw/s0ALeLsXdUGXtzXbXQcRAMa4Ina2JOJHbDr2mdA79O2SMNUwctKJ1/c0vKTdALIdn4taptv+MTQ==","shasum":"5d8a42bd3237e25a00173a8f8aa59c04b6af5729","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.5.tgz","fileCount":211,"unpackedSize":2212675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhno6OCRA9TVsSAnZWagAAVLIP/0pBce/gkSq/YJgoXT3f\n8FkjhHIuRCZk5EqD672oayhQasEc9cdyyfUxLTVolwOsqpFoT0VHqO/pX5Ik\nPIXbhQ3rknRLhT+KV4hb7d2nIwGUIjxNFa+tJriO6ov35wqOiN43tzWX5GbB\nuKLjmOPx63xHqnwulmK5zgTKArab0scIfFdEoDmBSa6FDbWNAofBIEfnIelX\nGdgzrl/FZF+RsCbxJihLoM0+ftVcqCH9swYc+2PwW3Ik1Bicet7tYzAE1Gl8\nVkrjCFLNFMs8fLwQxH0ALlMK7YVPU+um/ss1P1JnNdwL/JPC/20NKu3bJkFX\nRmxGMKkxDL/qQ0Sizi7lyC9bbiQ2QYUDYCxnAr5IKT5BVy/neqL/Zxd2n/Ue\nF/RRp/BFsatICqE3YQKUWHJhnJoKMw8OuHKWUsTOe/vaJ8GyZ0g/egeIh1An\nW95lnYs7lmY5yQtd8AEqimLejMrIyTZH55WrtkbLIYIUZxrIJzf7TfdeVp3P\nr/cVGaFLUbdyA2WVBqGL3Ry8S9fAm79PnWo4mgUtGHE4HSstjLvUdTbCqw+n\ns8URhegiv3qKLbHswRGRWbKNkbk61lCxjD89h1Uo+13qfH7FpNitlKEa8Uzv\nxqF0kNpQ2MVPJ18IvNQ6TgV8dSDMGKL5TcjzAPdm8nlS7tVKsPfkEnkz4XG2\n2Y6g\r\n=NpyL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPlgTZHVaYN7Yr1OMqaBPpZXVzTXCzltKhNv5dogMADgIhAOFwwoyrO/H5U1ncBtcjpDnjp/lEkdErblqV9qSOYEo1"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.5_1637781134711_0.9441230048589315"},"_hasShrinkwrap":false},"3.33.6":{"name":"react-query","version":"3.33.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"c51498a93598cf6b308a9e017c9d59ddbb68a776","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.6","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-prOMxzd4Utyl1AsR5PKqEeDUpx91BwJH+bm9LaQ9YooS68joGzsIDdNCe7m/lHQZI73NOqGJBPV5rFCHHwJRwQ==","shasum":"12be9c59efe3b63dd1ed74204ae37ad4a19c7d77","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.6.tgz","fileCount":211,"unpackedSize":2230336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoT8qCRA9TVsSAnZWagAALo0P+wVva8MAhFoqz8xJ9wDD\nmu86cQgDKcMgzfnDveuMQ9S+Mo4fVVeV1RvEYzOpw9Hwcjoer3Rsl3pPF4c9\nGogPqDBd9dYsTOrjnKal+tLWCXXq286lVjJo6sMsco7Y3LKVuYIbH7INvIUi\noTPUxjXqm88Eojnp57kk17KyaQZzkWr5KrTOUMGRJHZLtFLJi/HYrASMM+KZ\nuJKrjobxuNBBZcFg++PK2h2F0kg8ioDYrVMnOoWEs2fjedz/h+sfgowyW4EJ\nb8rpgBo3X3DWpA2pPmsopEvqelHdhgwhqf84qvwn0fZsXdy+sEgwDAKOevgW\nnvtc1DRHGeeHsP3jgACUyxtj20rc+PFPHC9IBtY941Tvx1j60R2nSaI3r1XO\nXVJ++bPyBlE4x9snzZ+BlPq7URqHVqeCFF8mh3FC+LGk3qp0HixRq/NRtjEM\nwp8SqC89NL7/O+a+vvTIzKTnIEWlJ61RPnTGtLYAn1hM/T8EdMbtqo1WX1ag\n1TnyeBg+Nus0KSGPaGkrCmJdvwbaCHxQY+okSCMdsHUgcHKqudpUH7DouUfu\nBZ/HgZoRVXkBzg39qQY+66T9Ppq6sBYSMqojEauypKmkxzVykA/60lZGfMMr\n3HYXAsUVn2+YhLa0eLG5N0Fhwrv/0GncHoEPWvbzJwcCSKqenUjOpbZ3dEGR\npPDV\r\n=XEoE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdfwBFiU9JJkwDorb4iqEzzqNgt9ppeGX824ztSFZQ9AiBrdOuLZRorNRXvBa5yGWlVnl/e8TYNgl0biga75/nMNA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.6_1637957418654_0.6921011846769511"},"_hasShrinkwrap":false},"3.33.7":{"name":"react-query","version":"3.33.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"dc2df1066fb35593ab9f7b852ee250424f212737","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.33.7","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-uL/1ZatxcRyvfhbNPeuOlLVbcdMQKzQ2t+SQLJMrMM0plfa/Al3buaPbGsbsmIwvyWeI4CVkkSBKzQIkU4p9MQ==","shasum":"6ab1b2cb39e2e925a4fc44e8a269c7691e7eb2f3","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.33.7.tgz","fileCount":211,"unpackedSize":2233002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoy34CRA9TVsSAnZWagAABP4P/iqMDcAcROWz0sXBWgoC\n7qNJctBwJeqsd/7glDB8HG9ekTG3m6EHr//ogMue7cE55v9Pz7yHcknBlKmP\nYYCVA9ThA8DsE3usjSzS+m5qBpvC/FFxKXSkOFn0owhmH1ZvFmvK2gKURd2G\nM45p4Ja4vUguYLA4OhT/TiGC+jBKlfznjLH/TdHCmqdntfcxTrOO6bjLb+3q\nWESokW9WF8YTBAdH7bSvu1E2wm7is4hv6dq0dPpY4rsP5BeNtEtueleoKI6r\nH5TACvLfBCuenH0WYHaNtA11JWdRH1sNXIz2YUoySFiO4YpDB3JfdyYPdxdq\ncfhxw0IJT2KyUoWmLfuqMU6WQLIXjV6+UDlkmfM5fRxi8YAWNTyAmseAI3lH\n4vRP1WIuwr7r7iYXwJVwxy0D91vWIxcufyBHsZ8+GIYgdeRj2C/E1sD/H7DY\n1nEMeZHK/ycR/9wWE4QyX29Y63xcgIaqAbfnsWNsjW9C3Oy5A9linidyXkBR\nkRVVyDmljtb1u8Upag6i/gHZkldAZ3RerORI7ukds81pGqzsQeFy661rER3k\nSfCF54EBktogu4Y4Dytgrzgz/x5JN7olXUmj4zBcCsFqGm8GXt7wS7F6bwTS\nOU+47fVORzE7grHoTlrcl70g9kG3ZbWFYCEL4A4s2OWvFIM8GSmytUXrP0xM\nXJyS\r\n=LTqz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGnaxawRgYyHoHnjh/N35Y/lWH8JCIM5u+6gffaG7Z8HAiEAtqF1WVaDQ9UcBoR49OD/T6hU0OXVhU1Bea8BmMpqQL4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.33.7_1638084088067_0.7613408897648017"},"_hasShrinkwrap":false},"3.34.0":{"name":"react-query","version":"3.34.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"aec640a5952f3787fc0efd0f39d7b51431110d43","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-g6L90FeCLzz6+53CbVKYJALBiZR5icOYPjqGGiNgHNeufcnddLZaQGE9wheclk10k6g+o+Dd4/jAtswhjVblXw==","shasum":"43477ac6d117d850354e6db80dcca6d5c1b36728","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.0.tgz","fileCount":211,"unpackedSize":2236069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpw9eCRA9TVsSAnZWagAAC3YP/jxh+PcHhs6ZQqSOyj2e\ntqxb7M4yOI8NwLGAORfKjX60w162We5NF2V3VJYYqdPuuGGQsvuH3YUBRkDg\nT9gHPlBTxuEU009zqOFttnBlX7GhXKOMicGv9qM51hZja6m2N77Bzi5bBMF8\nW/wWsgIUuYlWOSvqDVLP7JgBrIu6qkbChOGTmFTQIS1yYMdhgiFh+7VJRQAl\nMgYdCjWdS9lXaDdFuvjHMbazSB3I7HYxBk+wamJvVd4hsdhwGvt51SY9qfqr\nBh4JQpZP9mjxq1EMlNmKtkF3VavwLk4+Quds3W3c8ClJOniTOlQ8c4iWeRbQ\nwR4BUT/iXz4rglTfWuJzcD1rYeJhjaRpkfFpvk4CMGi1fRFKFe8DDqpJFFAF\n0Waar721sCm/O0/F+85vWJkUJmKIK7Jex364yEOein0MO3XZOa3WURZ+ZNjb\nkhljV/+UTBWBCWhedABMFvjWXahCovfcHd+zu/KrXZ0P4bS8eNf4uMSBUr6r\noXUo9GtHJWAWy2MDY6S1bweJP5csrGE9BMiwS1HeYfbR/vl0AFjdlYwDK6pc\nQZXlghHi0ZU3F0zYBaNvZ4igx6ERMvnceVgbgGuxppHFK5t2xQsNPbVEDdo7\nHtDwBs5CempPQbMkVZpcX/cDWDgxXTPLTjR78vpigSy4xrHlQx9T8DuHfqUZ\nP4OS\r\n=CKs0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCa4LwWtd4crLnKXUNcRGiVXb2NUsl6ZQ6za0ks2qlcJAIhAMoJ4B7QDvtM4yGP6smgMngpvsCWsTmmqaDB79t0Z4M1"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.0_1638338398240_0.6171003296830624"},"_hasShrinkwrap":false},"4.0.0-alpha.1":{"name":"react-query","version":"4.0.0-alpha.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"b84681fdc7d37645cd149f40e98cb18fd8bc393c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-7nQYFg0gJbAjgFl/G/AelxU8Pr+DjK573Opn5CK4dgaf788DYif4KqCeNaGFBVLdkxKwJN2onWpR5PY/I6leQA==","shasum":"c1508312c0250007da0cc1b878cb817d8e3d2496","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.1.tgz","fileCount":211,"unpackedSize":2254515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrxStCRA9TVsSAnZWagAAjqwP/0S+27C4af4+zcxtSIoz\nMSagFBs1a1OCGquFDbKhduuQQjDgsTpAIJQsVVWoXQdgTnjRdEKUFtbbqXGx\ntnYyfBoX3OPESUcBY0wBOWIbEr5vjl2tFlXvk6cYPjJPtLBygzB6leBvKqlE\nljY34FZ+/EZKgcZ1tm8KgzBMcGQZyflcMf4Y7vuYQ1cw6tYiEPJ2i8wGEhQi\nxYiO3T9uL5ENPMK6B16Lv7S3br89/lqRaSTnOAJInQs0Tr/IepJUfDbfX5xb\npsarWfZHoi968i8Tg3yY7ZY8atwGhiJadW3S6duwyCdz6UqEkbDRmtMpOAyn\nPLYotaeue0zYPA/mSmVGE3WnmazOeV1ry7NRkp2EObgaFIl7F7k1562XTlbQ\nr2fzO0Jk9xf5rvvDEMJakWGibQh+K8k3VTqUK8PuBbdaYrRnjtQXHLHm9n30\nffXKOzJlhTT+wROHrJwSRfOB4k8w1kWNKK0J460fdHm89qnSGNdhFVQpPTke\n02BCcXbrlObwYJyY3Qq+ZmBh2aoEF2ZtoLO12URH0thM8cLqK3mn4CTloWz1\n3418B08QDcoPBSxm+heMk89ALBCb2v4kWWz0oyMxLfbdUpDsyynSwm0zA9aQ\n/7RoAgiTlv40nxPuQPowTCY3oucm6yTeJkMq/VeP8CMNdM4UzAskb+MjBBUz\n0ON8\r\n=RLVi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCD93SyMA/W97uH3KsIX0q+pYdMxDGHi4L4MFG6q3mzLQIhAPmJVQBJVzq2ymrgrdNxLnASDEfJ/lFfgsirqpV8F1js"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.1_1638864045623_0.7297548572670278"},"_hasShrinkwrap":false},"3.34.1":{"name":"react-query","version":"3.34.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"e4da8dd10b64392e15fbfcffedb0488c146ea92c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-EE7PVynHqpWDFwhxNH7Oq4VOX8iQBE7Gw8ZZDXSNdOZifz2f382S9ZLJ546sHttQ8IBXPilPi9nxNXjhLmJBZw==","shasum":"c3b2e9565fc8944137ef05f07854040429e8862f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.1.tgz","fileCount":211,"unpackedSize":2239827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhslv6CRA9TVsSAnZWagAAAWwQAInqqax+zi6259eUvpt6\nF8skoLvC21X5HKX35XS9FZnDRvhtUP67GPH8g9AsCIsn4kiXC3DID04nM39v\np0iWqGZwnh3so+MWQ7W09BZe1XqYeN73ZxqZzZwfJzpn4JFieJ3FA6+uiPom\nfU9IUEG9WGziHnYgT8oc613Y2vx0+wD7uSlM4wE8vA5zl2wuOvpdHlXIEq/g\nEzxTKG+a7DjgZjIf9OTcu1qbmsaqRPHzocHOTLqmJnVueI6EddGy5ZccxYmv\nLPIxCBzU0yrpP3GQbbi3qZmHIZo/LC3W948xwR0f35Sgz3T8hxYsrEDyprHC\na8qfNRYIGkQQZ7U+zddQzDVB7AK3Rt+mldiy1VNLaFf00i4cwrZmqygeqIXW\n9zFejWig5mREuSeFeLgzw6lNol37GFJscMIRe5MM6ibYNP87Bakv/9rBC8X3\nwjzFpnsSPSQzCEQJGix/nxGpoREmNWws8lgVR6Q0vJFt0BxsRyb1xjh0i+V/\nivrOjMrDQRZPcyGSieo1fq2pGbFOZsi/6gza89yiBQiKDFlJAYTA9bEAAVs3\nfJoFg67ycqfHBULWrRREtk8Mdat3WbpCjoGwaYPCZqjLNNDttWW/aQuuExaZ\nyDD4RlX/vhTRG0SoPJ15Ffhxas7u2zomEqL1RPUu8EcGFfiXdh3UoeqhyAL0\nscm5\r\n=rFse\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnlhjYgCpVDSamR2g6VTNAKlaaGyX/F5CLWu61tnHVyAiBTkAO8q/0aRSTqiEp0DNd/2EWIL1MlT1X8jRfqLMCZjw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.1_1639078906707_0.8584298217123798"},"_hasShrinkwrap":false},"3.34.2":{"name":"react-query","version":"3.34.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"ca335dec7b898592bea49734c4d121d1fd125cdf","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.2","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-Y817mmZa65kysW5YloRiC6/3zj/S7/dphUOfK4ujqVcKtl7/NkiMqJv3hjnLCS9cYeOA4pU8LmYQCSPQALrkcg==","shasum":"ce07b97230575981f98bb8cac7e0f2659c491246","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.2.tgz","fileCount":211,"unpackedSize":2240489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhs00mCRA9TVsSAnZWagAA5usP/iuGOmjbV6xCCoGIh3Bm\nMTOawk+MbE/j8zG32zee39qUDqwBVBhNwayRKIYH3dRv1cwDUDTpZ8AkTdX0\nXoSz4eM6qfPqKlsFaVVM6mefTWJU6NSCeGMjiG302UOV1TXOHeIVgGZX6B46\nBwM2SIk+dl2MYkxi811ZAvwOWlYWlLv+EFgDRKCOe/XUMx/GSfkeQupHnl0z\nKdeolGsB2XjqIXQI6lkAeuyvOaURfuFSp4q9r7Ic+JKrRP7RkVqtoaWxNpPI\n1uUkCysx/gA5LnDp4KZj4qVP4u27Q2qdENcmeGqq6T9CEgGo6F8rXrp+2SvH\nEZTxr1YA5eXbfIjKjiWh4hif/oFdZCfvDWerti6vB5zIw97P8iIdSEuBVIBO\nZGhxku37zbRh7SgoQsI6Leq0pzgdlkGwDVhV5WMgH8c+vMjmF5TXg4IZsvJt\nz79ic875Q0B6Rndg/9Hq+t6sS7fHVWfdOdCeT22aN/SrouU2s7mvZyLG+yVT\nqxJ+mQ0m4Xm3Q6UxHWKsZ480aGXK5R9LLUcCfkZOR18WbVinp0dyXBVwiM2i\nxem+brU/MKmCsTP8lQemjCnv56ol2XWSmO9jWGnYU9ttIYDFuVF0Yi7xMuE/\nnqEBJhEitG9ibmamFYgAqqJhY0a1zefHSBq8r+wDZXohnmUMyWXRpjA5h8qx\ndu/D\r\n=PUSH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEARGe21DECVUp5uV5pLgCj9m328XhlE+W0cHtw7R8ABAiBy9p4+kSOM3VeKVIX/I1i+nVdq/sKjPy+acavv7uxYSg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.2_1639140646751_0.32427282621248765"},"_hasShrinkwrap":false},"4.0.0-alpha.2":{"name":"react-query","version":"4.0.0-alpha.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"e200bf775757d3ffd29a028515525e6b547ad768","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.2","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-mr9abzc1VQQb9rUfAueoT734ufPxBsjzf9jyd6rObGAJ4Q2jGciWMRsFLGJigY9Y2sdJ6lsw2c/BmhRwbx0xuA==","shasum":"c1f7e93fe00a5c3196f51dc043ef6403f63dbb0a","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.2.tgz","fileCount":211,"unpackedSize":2252304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhs4nHCRA9TVsSAnZWagAASloP/0m6BX0RYODdpsCUNhwp\nOxyeh1n9dpzva2yXyRsk6CbEwuo9sCNId8AJ5r8MYEQEe51zxAMnB7xHlAQ2\naBN4cnSL62GrAO4cfAwv2m3UwDcFbJU5H/NWSnTPUNg8nYqYtQEvDX6TYkF1\nsG3hZU968wbPtn/rS1SHptWKPwfA+AXocjZ1WDK8onAJ4ZJkjtoynXz3bl3U\nPQidITqKrWDj7AxU0NYJYvm8pdwX6Ob8IjSDvhBHCc0YSHWy2nU7wUuKa9de\n8kbTj8BwySvvgYvF1Uhi3S7CODPC8fRyruH5DWPD0aEv1hWDrDkYN8qHwgzI\nNbfO0MNIa/xFbCxMnmNOd04JnXyvtwqSLK4xe5Y+rOrGv6dhYqW8GY5KAvkV\nfoHrcMPtL1viqCw9oZWjKL1Rs+NAO/59PyX3VCujR7XCSOqbBiLOORBOfZgY\nqMfBAjFtaJS/BHzHsZZwg9zO58+Nxsz1AJcABF5c+bjR8KaySukP62R1T6hy\nl4HhWfxTTPpwGQJAAecWL1OWZkO5FDuQ2e5MahpL53B+fiMBGoosvwDWS1qp\niuAcg546NbLaUsMuwi1nvlCp6VyX+sMtPmGNabyUcqGuFBcsRpPBZxqA3UV8\ndhjjNRBvx+bBoaL1BFduoTEq/JhDfDN1A3MigIkNcdKcqP/I89t62z1PmmLh\nTxvN\r\n=Z8YJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHi0gwq1v6oqhaU9cV8mYiAtK5wcXDy1szqM6/kSZTxAiEAuBj7MFwP4JeU1IXijvJW96tajOV5VRmKIQ2Wea3n35I="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.2_1639156167263_0.02579203797792995"},"_hasShrinkwrap":false},"4.0.0-alpha.3":{"name":"react-query","version":"4.0.0-alpha.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"c50b63014bd201ec8f7da410ca9c600337cba0ae","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.3","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-24DS+VMVGE+irdzR5M7dka9mqTGAd2gIKiouL5Oucp4BDX1x+hrp/b3PNI22mrIJXc/kjndNrHISCNJ2nDzXNw==","shasum":"4a73e53d624d693a4849ea881a61c41985ff6a79","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.3.tgz","fileCount":202,"unpackedSize":2238892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtPX5CRA9TVsSAnZWagAAKM4QAIt3F+cE4/pSKQpoPobU\nE2tE0OBw0s9n5wkF/j7Dj9CRGlgaLYiSdLJK2IUu/F6YArLvIrrirAcHCAkC\n/mk4uzFasZCGnzaZ0LZ+gwNzoH6qOdSWN794XQdDnk9sfH14A1bYdLRewP5J\nD9XPQWCeR4wAF73dPe+UX1AaVgl10FJSifZiQC+cIFa815zDNdLK73CJYSnV\nQ0JmehzNCLnXqFZHiOIY8F0crIGEcFdBGqXk+3G+8ZhMrQbGUEtyDxOFYH3p\nCZux8Bkju798KmL0ssruRiPjc8AV4p26j/Og27xwpqkxNLJDxevdmZYIPLKg\n2Xfd+zCttDjz0oIImlR9hHc9tpCYsUW4Hq+29rbSjUpVfvicix97DOlY9eEx\niunpSHJHgqrg5K/kEIIDBkN55785dAuMGaTZAri/1iZ43449MWv5f6cy2RjC\n1VUIeUjO+7G1WId7uyS3jGjwB5YvRD58nehobM27i0Q4cvERL4VnhILuCa3h\nnPWsrn6nIh3cyUAGvQkw+lDoD8ZONy8v0lFlb9HWXBiMa9D26DEmhjUb/26q\nfXTXtETfOXAWlt3zntkRcDnj2tC6zKCE0yOJ84d9R7CvUcYd63ZmPOsyFoIB\nSTAaH60nSdtMmc5piI+KTy1hYaB8ypSpc43K7+s1z0E9fJnNzdihIXnr72EJ\nbHhu\r\n=WWSl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGpebeGiEMziCfAy3XUX3xGStu5s3wyDUfgsDR4XTFtJAiAlGu06trWyAsdNEgfhhVcJDoN/tPcvc5s2qOb1niN0WQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.3_1639249401392_0.7315090545579181"},"_hasShrinkwrap":false},"3.34.3":{"name":"react-query","version":"3.34.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"128e578c08c19f50306db4de34321d6d34016cdb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.3","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-FQhYyRrLoCIryuYEcGexAIydiO+nKV9XPs6RVtRQx75OXsmwwnr5o+IICOP7GvX63mW5nmpNgeEmlufEFK5bqg==","shasum":"0bf1017b61f0f24a75a7d72a4b1bf4d2403bcfb0","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.3.tgz","fileCount":211,"unpackedSize":2244492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuIsLCRA9TVsSAnZWagAAs0oP/313T1/4Bs9t3zsyDHgI\nElQ1xcGwK9saTEgpjHYcxFhgDH9+R++dcsEsEDTQSUzaqQV7UcDiaH0wHuYf\nercGCJ+8Kw8Rlj6sU8DCFCgMqSrwP5+osrspl9Jm/SlYlRp2cJJkvlNnAz+2\ncBzoyx7EM7zM0vNm7q8Vy3xFC0UXyQrxRWPWYiw9y79e/XSERMGGBr3m9c6G\niDnoGO1r3Ws8s76PjIAkWI22pKJ5G7E35GQA3Og0Ai94nBoQLpe8o0FxcArJ\n+UQIEf95g+eDjgBXSZCRxck5KKuellVmfQv8cGKueG+LCvz+CBlogURiM+c7\n0g7XKl4CIejdS646PGnKW5Mj4px67tXpxBGJDjY+oWVUYmS77qw9/cuSHYiV\nuOmtFZO0GraGQOIPH1SVDxQhNU0KWBS+1zzjKjaU2Plsnjg7AzQ/VPMKhKcI\n3wsJTV7aRAhPeUF5szVWXJqEWBYYpRhDpUpJTZGwHw2V8SSUJlkcj2wmMc57\nLkjl2oa9sm3Qy+CPzWdAb0BJj2nCx2pP7zRRCiJQB6UxAWQHRG3GtjwxwxuG\nEzQYF8jsPxt4oeEzfNRLvKSu5F9rGzjghw7ixmihKXaVTS0bokZ7EZ7MUF83\nHYbixZGsMY+ES0K+fsxLsTvKYt4QOg9GekgJQp6Ph5AhPvUvc1zhK/mCI9wH\nG7yQ\r\n=aIPk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMwbdp+zcoZt8Wi2VWzAFALy6SMymGUyvKd5ml7UIRWQIhAOwdIKbCxsjaxnL3iyXnNflm5Gcm3gb14Gii2fHTQuGk"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.3_1639484171612_0.887332196254915"},"_hasShrinkwrap":false},"4.0.0-alpha.4":{"name":"react-query","version":"4.0.0-alpha.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"8cf612e0591e17d4f0a94a01f7e6c143a75a7456","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.4","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-FJFfytdh66BL57dQUx/o5u07xuIQ7Z5zmx0r5hRDBCUA+uicaOiMWAVoch5n4muZ8uMr+t84znM4d+ATDqad8A==","shasum":"34851a4f6751234e456d83424a2af47215c8c987","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.4.tgz","fileCount":202,"unpackedSize":2242739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuOs5CRA9TVsSAnZWagAAANcP/0Y1ZyoC1SNPYl6eZ/1V\nOpBMQ+7KrwW23dwA2jIoh7/amYxirX5O0IHwTGSZE7dPlCCZmBvknr1DhOMl\nELxWehBG9aQNJX/GoPeZX51f8TgXNI/K6Oe1RT8Ig25KJ1iukIZUu9KhH0XS\nqVzy/Wic6kwK2FStRCkiyTwTk7kEKFK9U5GOkQsUxx+7LGrXQKnxlJWTiH/4\nXtpADQdISF1BOHoNXwIipqxbb0T1u+oLvBVg4kmlnwkCCsrmOY6AceXd2SlI\ntduHis0JORklzccEXp9xJbQr6Qdh9hC4Ib7p2s9Ao4x9j1zpSi2WHHYQ815L\n3WEZy7Vnb82OhT8DhS4hCQZ8Yu0YlkOuHERw/z6Smj2/MAjCjc2R/uoiXzDK\n/ILi8H6fhlb9uJcN/MlmXcJrjvuTphmP0NuM8JFrg1pTkNtHdgRYCT4Ygi06\nihcAWKPF3c4oqP1RPlob/U85/FWpQ8p4mFnRBN6SnDb6HoR9RbIQ9j8QT3hW\niZ7cW6pE0Fh/CBqp12WRsmIzXqgpIhVbanlpY9nAJZeInLE/SeUSWb9cBrld\n71bWrUf9qLgf/zQW6Bg6642YsuJXyWnM96RynSoFWRFRJ0o7AGGeP70Ae35Q\n2J4LOmdhnC712dV39875EXxbs9L+fzXG16rL1Lbn4BsQB5yEDmfgEQLCtcwM\n1O3N\r\n=i55e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUvxbjur6jzX1KWAnAeGnnnrEPrfzuaVB5ZmfMeJ492QIhAKU+3kRDyN5N0vlpzkvrzkjmRye9OyMgPGoZUiKaBmmw"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.4_1639508793312_0.3119983250737419"},"_hasShrinkwrap":false},"3.34.4":{"name":"react-query","version":"3.34.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"2054f5b227d1e6bb4d4efea8e33ec6e0534cb933","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.4","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-1Pa7pNJF9I+UdQ1RvqmBO9tWvBNfzNeJM3vYApcE2SL4Hbwy6q4U7ce4u+SWQnLMFit3z8WWp9OXpcDqEQ/E1A==","shasum":"da926717683fd9e9e310d46ab6f60f76a80ffaae","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.4.tgz","fileCount":211,"unpackedSize":2245193,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhujpzCRA9TVsSAnZWagAAkyQP/3uziph/FIZIXabqUKXq\n9efwcuadtOynhpRvk+mmk4J/HCUqD24U07EkXZwD2BKvLvbeF//HxvDm2Irv\nX8qQG9p/Hsrxw851ORIZ3Y5p6Xiz7QpwkKJwUlFVfIts+WQD+BeNsmCq4Glh\nOpCUraHUq8xnnXqaQPRDex5vpiIL9JDD4tIDuDkT/TRZ6bz8ULkZh5vf6P6b\nv30H6YA0nJd9+ufYte6PzAhSdgIgK39dvWE14MCklu8HPRzELk4FRH22gxoW\np3u1l0GHcTJl59ymO1orf6BKA3ktAkBsQ/DD/y7/nbIV41vbN2lJu1qo++fi\n8AdMWJRnFUWW/T/c9k+b5bF0qOqTgg8eFTR4u64CTLffW+N5A4fO7/GDf+1C\nNgyxsxIeT/OxYYXPylmtaTtM3RwL+q3VG3zVByiX6O6q6Zll7XUvv+KMJDc3\n+G/TA+JkjwMqs2O/ih1TL//Y0t065Dy4muLGg1uqNNucN5vTe+ZvxNHFeAGP\nnqUrm4uLssnR5nn7F99BIgtAy5q3LdDFb1BA4Sgx+XeypYlo6WMXZlDIJv7K\nG9wPMeYKdwIcMf28OKsygqZua+5HhheiWSAiR7Nvc7yTax0S8rkNduqthogD\nW8nG+q2YBptAkLCImiv3+F/dDjxGBXWEUodo9wXB1HioRCAyYgAh5PaBbU7E\nJ1BO\r\n=Jk2Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLLjUgfR3oGNNMwNXAvpnSgq/HlfgM/BSCeO1HEoeXbQIgBDGUTYVvDsSX/T3IYqpCO3Efy7Pnj6VAKT4pjua918Y="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.4_1639594611395_0.09596550656983593"},"_hasShrinkwrap":false},"4.0.0-alpha.5":{"name":"react-query","version":"4.0.0-alpha.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"c53e5ed2bbba46d959ed14778600436cfe2013e0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.5","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-j1BclCBPGJuaVaRNnlr/hB/0hDjQfPhwmDtxldHQIaFdKczAQT7K9A6GdZQ6TWi0jLHy7QvnuOTaWBLYlpB5Yg==","shasum":"f7702cf3d6d71c9bc7dc478630644ca486ec5a16","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.5.tgz","fileCount":202,"unpackedSize":2243441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhu4+BCRA9TVsSAnZWagAAxaAP/3Dgq3F+WlLYVUTyW9cI\nQJsPZHoUUNrO/IvV47Q6/JopqlxmR/ePF+YmJb/biIPFRp4EVoU/T2pWMXk9\nUinuZHsCudYVLXpaoePm9sA0U0N1sLqJ9stmlv9yai3z6cV2sjv6iSIQJuaL\njz9Uu4fZKnPZvi2UybDAJTvg/XVU1BvxNhzeGQ70gvPFXGiymXFxbUUsvCo8\nwFOXa+LgJF7rkW68IFJOJTpbm0y1pbGgoiVWcbRW26YUE8JCJij3Ia506eQE\nCA3/XMhO0zVKC5aFpBrCZbfYRyl9SVe37dI5PEiJ6NaTzmITEFUl2xybCqA9\nxexV7gDzbCs8xFUdpYH0dqqletSl3jAY2CeIzqEIEoLdyhylJ6k33aki3Ybm\nJzQTdBpMX1e0aLhxr64+xTsAtmMNW5dw1NTmElGFiN/8cjZwil7HshRYIyGm\nOKGiFD4LaWvEb78N+kN5AoGO/GDrUpkYYgjCP91DOrOVcV44MfuYbmK7fqBa\nCev5C7HEjYpuD57QlFmSa5EG0IlD3OUr9SncY0V+lWHViT3KM+mRSXS3Qyad\nx/EPC1asyL45wrrpf4BKk2TIg4kIWNE9Ww+t8DElrEVs3wwKgbX15Oip3zxV\nGky3+7oVjZlr21evOGUAPx60ZbrwozKaJMc4WFNCKiFgLSHH9xgYVr6KGyf3\nJH2f\r\n=Z0FU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDekZ/seaat/GReP0j5qPnDmjF3b8B1LvUUjJikuku19AiBdZo5g2P1bUTlOH6wZRrZIW7cN+2pfCt2v50z6DzhtHw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.5_1639681921590_0.7963523623429685"},"_hasShrinkwrap":false},"3.34.5":{"name":"react-query","version":"3.34.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"3981f5219a1e3d8f48d13108b55673dcaea46319","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.5","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-qk1hYo+y90LGY5W4kNEYT5yCk8gyL1fVTMoRZfzBTaSdaZWOcdvij36MmkhIqiPdXoEt5pBvX2ejokazwq8haw==","shasum":"a145c02f58088c5c83c91697cece50e89b4dbfd8","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.5.tgz","fileCount":211,"unpackedSize":2245525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvHtzCRA9TVsSAnZWagAAcawP/jt44fTkTs14TfUdT4ue\naBXxqeNA1dvMicVD2615bJhObqKCSaY1ungVQGSdvBev6Sh8EeS5bkvoJoA6\neSP55wGEXDPeR1f7vMsd4majtJWBnQM9IfHk/lIkPxiU4H/DoJ5f5Z0wHs+m\n9RpBNlM8CNhLfQPZ38l+cAIINkIUw7QqbEjXMleGbWvEfU1g7R6gIOgO4YrO\niBA4bOdadqUpZ3kBd+XJjDds+gqaShMksQtc1LuOVGsYAIZuS/x/6KbegEUy\nam23XDDoTeOlKKJanecQ2KyxdqkJBVT2ZP8bBfCB7/Ri0x7OiNMkm1toHBdU\naus0duTzFouhdccKG4NDYemGcuS0xvoW5+gXajBcGAg0m9P4SywdkyNazqEB\n5zGf64bOu9fT2y4MH0CLErSLvcMca8PhXZHNNZTxo+JRvsQPG4lUMSII4mMI\nha4KbraQUOsErfttfNkcfirPRPBTTNjwUASJYSWtFAcybdHiTPDkOj7R6spa\nrAgR0OrhwjH4c6F2EaPQgOYzm5YjOmA5OVMZo7SbZqGljcHQwOJ3lL18flKB\nsnzvcU3+9VIu0iI0rDCnvghtRiCJK+y1XD7gxZEj3vJ9sZWFndiZMC216RKj\ntzLtVJNCgTxjyMtJtXJR9u9/V3Ik2mR+zlbs3M2mobTjgXyrgb4L81wR+eTP\n9pAg\r\n=rVDI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH49LHoj4wwK4z0/sptGVtUZ1ZP11/YTnjHfViB468YFAiAXzu1kjTiqnRzpW2mzGI6FgYlqvDjqYcWOVPePvOYIUg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.5_1639742323641_0.47795500120101364"},"_hasShrinkwrap":false},"3.34.6":{"name":"react-query","version":"3.34.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"ca2a57aa4e89bfc8b8695c4223c5a477f2c8fa7c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.6","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-2UKldH8T2PjmLxaOzANok7yITQn9FF1pBbrZFF1hvukBjYefHtCjUur+GOVAWMhrsskcCoKRviei4hcpvj9wLQ==","shasum":"e8158da6642cd3aa47ae12d6febec11bc699821f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.6.tgz","fileCount":211,"unpackedSize":2245685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxD1TCRA9TVsSAnZWagAAvvIQAIfD/5mt2qbtTfTZXrw7\nTE1KORlDUN6JJ5TlOzxwST28+PZgE1Ka5EfQ7SIX2mkfplm30qAlMb/Mpl7q\nj5Gkl4EGngHf9F15DgfL1cwwLRJzOexuPDG6L+CQB5Ww3YVtR02R2Fhr+tys\n1A3qti2F1c333ZBNfYM4bG3Q0RC4ZPLIRLXn2qSc6ICFfBZz+n+1SK8BxM5L\nseXadguy1t4CuK6C2jaKeZiX8SNTdHF2McGFYn+QaVWv6Go0myMIe05yF7ab\nB5gLDHj7ohocLySOLrc0PDhSCUlNnN3zVk5Sb6Im8Oi4yEP1Oa5IZ2pp/OQf\n+64sW/kctE1AX2oUUpBoXq3Vyfqd4wvvHLPZzd/XgbAmGCTvOreSyWZMyelc\ncxTvQ0AR6GILRLj8eXjmIT4Qstd4abgFH9OHG9L3cw6gefTQr8boYwhSLzm0\naa5zSice0Hs+bfAyp5n5oomTcKbAVN6krP82xwy5QQx691aALNem6Bq8iAZy\nFukEP//954851sGxmF/uRQcONt//Jl+HmyytCVPIP0Ze46cu/YxDsSEwVaY0\nVVSV4lnZlpS9b/FcCtRNgjHwMZyausRKZS8fwFQtlXtIJrCeCNtXMY9EId7D\nn0ucV/dD3du3qNaeEhgNdW+ifwKaoRNXoRsa6En/B8yQBxBMbLnbvCjkbRFO\n53k0\r\n=FOkX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaUA3mUXUgZ2dD1yH9IYR7eKChl3FHOw7CTiL9m16jrgIgBksefUQEO09AMbWTcBZ1t4F/syVCOx5IiB3SNAE88oQ="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.6_1640250706961_0.5235442075177126"},"_hasShrinkwrap":false},"3.34.7":{"name":"react-query","version":"3.34.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"d7faf86005052654451dd7d5b3665bf6c971b66e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.7","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-Q8+H2DgpoZdGUpwW2Z9WAbSrIE+yOdZiCUokHjlniOOmlcsfqNLgvHF5i7rtuCmlw3hv5OAhtpS7e97/DvgpWw==","shasum":"e3d71318f510ea354794cd188b351bb57f577cb9","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.7.tgz","fileCount":211,"unpackedSize":2246529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhy0ulCRA9TVsSAnZWagAAJEgQAJ2kgUxBigRnnR8dMos2\nJmLXo30ySs7CdOGgy0C/JB6nZQf6MMZ3Ut6p9wetgTmSKXEqqJl2pZOYrc/p\nI/WqZWdkd8ksExty+B8ydgPlU9KzNw3Orn6PPjUVYXeMe/z2Cj5lq8v9fxd4\nRAwmUfYh9PrzfHmcdcgSiQkC5+P9DkuYrCptLU45nu88fML13eMCOahprlQE\nYw5yOj0vLQJyBli6lsxEzhQ8u90SQMuJ2zsCjDt5lbN24dGgoxV43i9vV1qD\nA6tBbb2xQnMbs6aDpWEUAZImBg148KYwZPxmm7RJFzRrGScnx+rX5h+kRqE3\n+U0HFragt0U5faxgFf8SdJXYVDQ4PN3Bi4eHpEGvdXkF24808GXITzqrr0XK\ntPPYXBvRUsh5k9/XB+bwWxPQQYjT9cX/aqAjSSHXwZrc5fiTmcfyeCNUx4bx\nCi9t9FpRSp/XQ0KQQTIflaGZq9D7GxAOjlXVbRq6obbGyfkgLhHry/hBk5Oq\nzLrgXqs1KvZwQHLQ2J1rvVhvR1/4vm/AixrsySOLvGQ//9ieCQNGVoOTRfFb\nxAOMZirz0/SjiZXC8iRBWtlPq4CA0t4FoMDAPsCWxqlCO7oLocl/EfK9gcKX\nJLfllTWlnvpCExMG52sARRFjC6ysib//fM9sD1RXcq8/FKc2AjgbSL2SywTj\nuzzO\r\n=o/ca\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsgvPxO0JGLpHyZyeqJywvmPUpMeQykBC9MFPIRnhoLAIgHombICzbhf377e1jaq1B+7nnXpsezJA3qyCpa8aAsnk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.7_1640713124887_0.5673456035234885"},"_hasShrinkwrap":false},"4.0.0-alpha.6":{"name":"react-query","version":"4.0.0-alpha.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"250c654673953975c434692a0be7975a1b94b259","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.6","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-kMpv+6bPpDuxvgy4o+XFOnmuUXCSGOXEaq2D1ja7VYoOUU8RXvF3/BpEvRw2HrLzszgEUiSb2dtfQ+MiEc61gQ==","shasum":"c7d24f2600908fadbbda9ec06f08a39f0cdc6483","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.6.tgz","fileCount":202,"unpackedSize":2249638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhy4HLCRA9TVsSAnZWagAAugkP/j8kzQASjeOaLvLbj6pN\nVjb12yBQRLFew+9B8jwsOLN1eS9/H2juFyQuni7fM1d42V8WcHoeON2EcZDm\nBhuGv49qL3zLQjjm5OmpRmKm5RsdXrbWe+Oauqx1qxkv2jowtTqKXZMgBt//\n9wYxk9tvVi3MOkqIU0VGt7BdjZ+6lq1vata6M0twJBd5TEnznohW5Un9yvG8\nSbygMpyJWNnIUM3owijRV32Zej3WHB+yMLRxv3ia0y+gy1m2WUNN2wJamd1Q\nEy1kOph8Sf2Wo8UmVfZgOPuhCTmQ0OxrmhXeAY71NHB1LB+zkW3iyCHORrUg\n26N3P/cFpxbGnsYtuJtbaXhMsczY916v805/0izeUf6PX1ikW//CNtlxWn9a\nx0i4K7S1PLObhHckHoCibXa/L2vNeKAwVyHn7ggCgf2qmL97Dc7DNCkdWO7k\npd9ParZokygT+nPQIRK+ralAz5icyuQU943arLMOcVB/2VOHYU8Ej5OmTVXO\npWHh4k1Td44H2eyuTChvmqzSJqvNLFy5ndq/ucoTZUK0DmYovyVVwEqexgPx\n80zBt1MYxX8gbOLlFizYr/3bc/kK8cchPhheyc5SOm6KrKcUrM7T+vc/ouYW\n3vbTpMhnIlC0xvz0pmqibKjmkAdKD5ALHXczPSNqmE6JR9vDJ/LBAMehWznj\nHlJm\r\n=MwXh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDju9ZTee1p2FnXULPY3gf3nxaniSiSCgQQLq3z+yQ3ogIgHM4cfsGyaWFXPhDtcSP6PL1DkSHuvoMjHleyndpZRyA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.6_1640726986901_0.6248687354714975"},"_hasShrinkwrap":false},"3.34.8":{"name":"react-query","version":"3.34.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"755702dd78efadb66038fb2535b7c513c128a918","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.8","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-pl9e2VmVbgKf29Qn/WpmFVtB2g17JPqLLyOQg3GfSs/S2WABvip5xlT464vfXtilLPcJVg9bEHHlqmC38/nvDw==","shasum":"a3be8523fd95f766b04c32847a1b58d8231db03c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.8.tgz","fileCount":211,"unpackedSize":2246931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3t7OCRA9TVsSAnZWagAAd9gP/im2Ki4VjBYyZZ+/I6hS\no9u/rne3OabEv5KZ2ZPgs3r0WjPxx7wTggz9KAINO+1xczdakToJeSD8+ng5\nfcyRZQ1FsuEaS36LonTGEgx8WG9vCmH1hGTh1zwrgCXYp60BzfmvUst5rPhI\nMPzEQ6GYJizGIeZQaQ613Urksy5gxKA1CZmfQmsFybwertfQ6DaUvMq4Vlnz\nJySpb9HzHH6tGQFQF6BEoJ1z6h8h2Z68zwt4c0ky+D8uZaceBjyEntkt5UNJ\n7RJ9Uj68XXVBgbuvSGSBgEVtGgpR6ac8yrvmCXQso+MP14kxLSDNkcEu4s5/\n/DCS+X4VGFKyklOLYBNf1NDArZDy43pYGpynEECd3PgsZaBSbCz9Tapu337q\nR4tfsAk2Q1rR3sWZpeg8lU0lSBNExBR6FZrXeUES0jD/FWzivI3CuxXMyuJb\nxLfcu1sTA5RYb18KnuQ3jf1rBInFvZC8pG8BQPTriR5KKu9ocW8PsvWUGyCy\nP7g6baGI7OsZVPiXOEeihBrfTdr7j7CVW6HWHB+bNhVGO3kzgfcfC0MZSkGS\nTOiplt/o1Aj4Rl4gQGErqHuE46iQUF1/ritT8Z6Aoaxfh3iQwQJ8J+irs+Gg\n/mMMSekPZGpQzkOvCGe6/3QwDzDKouAYvBscu+w0RdExCMYnLTOHIS7WJ5Zv\nVHjc\r\n=DgiI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB/ftSRsRje+YL2Ar0TxiNcCsp0A1OHZEOCrEwkrs9FAiEA7fjk9FYpAjtH/6/rVQwEez7qpicvqjpneEePC5DFxYg="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.8_1641995981860_0.19583931465155047"},"_hasShrinkwrap":false},"4.0.0-alpha.7":{"name":"react-query","version":"4.0.0-alpha.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"1abb3714637c3f9044a4294cc737cc41966a2f49","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.7","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-saCMXbk+8IUDk2K7FeeU/SUPMYve6IVjUfMg0FGB6OpGLrupRdifPlLyiOGnJR/JpmZOJUpYoBh2lUa/zruNZA==","shasum":"70d8217318c822bd87ca9272ab654e2f5a94e6ea","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.7.tgz","fileCount":202,"unpackedSize":2258528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4TCLCRA9TVsSAnZWagAA2coP/Ax6VUisyQ+TXc4IpKJi\nSq+YbOOJzsIm9819W5yIwkvZMtDjCD5y/FtZgEjXgWtgjNZoTnMMuFNv81NZ\n+3nIRibzI651KIugNdLzHJN2u49HIPr/CQ7bxTlWaC+7wwf7YAzEsoPFwDf7\n9fAKTw9OKWfvUdd2e3PwtMJ8YeoDJjh7Qd9IQ4NtTA14V54qDKPXkEkcy2bZ\nuaoWGVabEPYyNn9sPjWdAwNjIupzeeSWtu4Ie2MVnVDz5FVnyJTCcMW4ba9z\nKr1Hl8W4Qvr5JX+P63tRNQchiJqioiyuNpLkAJhoIKstAHzff7wUqnE2Qabh\ngyQa9Qb2edthw5gpKs9ghXT+O+02v0Cdhq8tszFJWSTkx4ZfpXg84MuUn7WU\nOEzR4WZNJ/U/5CbMlmKEkEy9w/yF12UmS1tlvYd9LO9QP+WCSgoWZwYP2lk1\nJaLW80Ggw2P5gW2bG6Jlr1p/8TVb+SIrflJEwyYN8YKs0dOMyxEVc7G9g8Eq\nYLX2/9bxvkzscQdAxqhFdp2y+QUrdxklO9IC9UUpc4ZlPIFJcG9PUjxnu600\nR8ZgQZbuE2aa4KUKZ3d7acHDDtUheRjHoFfBc53nCu/ZRTbGU3NH1BS3l+K9\nQ4mSiPz0rp/jL3+4x3LihDyw2CQil18qHmhGoMc1ZiFMRRtqi5hiDffTAN3Z\nzVfE\r\n=kaEI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFS4DzbZT5gwiVtUVgjmfV77C93n6Fd1CcbS1iRDVNMBAiA7Rx5aTLBzO4y16zVSP+bu0KvBWmJ7ROEHvcvtA6ihAA=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.7_1642147979061_0.6582967307756331"},"_hasShrinkwrap":false},"3.34.9":{"name":"react-query","version":"3.34.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"26b39546cc1f37a3fff1e43515b65e640f532ad6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.9","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-rZ8LgPmOeaJ1iAd6ppSUB7ujP/CM6qF8+RQL+knCt+gk7JkwWOu/Vrq5ZgGiGIXkP7x9ho0we096sLIQbwdXPw==","shasum":"fbfae20e510056972253a65c3343cd2499224360","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.9.tgz","fileCount":211,"unpackedSize":2246600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6qO1CRA9TVsSAnZWagAAUEYP/ROr2Ml6G50Iy561QAoG\n51pS5F3YAQ0sqOjcuqGmawtV+xDp9rmdz87ClPD4iVXb6kswK/L7AiecRUYY\namcTKnrh5vm/51N2XlQ7S8XQi0VLaLMmrF9RqJ0LCKWkRqiN7YDVakQgRv98\nyu65oPa/t6otLwHWqUa+EZacX8+EvEJtVpzrIXCF3WzhCa8khKjefChX2fmi\nTVOsJ5RrDYbGBgCZLoBK6ZbBSrYOboOET+eojzPcShGg9XGYosQS1/5VaA9D\nLIMPyPBZcqI8WJnLgPJcBgT5YDQJpiVJDkqOS6LKnZtnUgwrCMqdWuActsE0\nUC/5diIFBBr14/+C1YHWU5SvIOKrWJYT8ZflORG25YJyzd3sM/w8fd+eqaPu\n/VK7z75ce1/xUDEjIFVIOY4n+zNqyXqLpqICVOdeEpDKkNPj57KHo/eGC1Lm\nb0LRsQpi3EPqEHHjOMDnu5+ZN5bclbzoPowUQOMd+yrerXWI/FVGrI2P1VPa\nwBDLDPGrMSnRs1f0Mi/HZGpg1bG8VV0odZN1vAhyuSCVRNK/xhGD6tODKsEL\nXH6yf7zk1MfGviPY4jV5tnFKRiRKMulsMpnjjeMMXSX4nRWw6bM5JXkvgJc/\nYTkuyrA+0oSzjUFzdroX6JA8/eLgVoHhpYsdBE4pWFkMYIQqCFEqoEIgPdbb\nzB0z\r\n=Te94\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5G+MmV2C0V8Olimlj/lMTCqRPiTfc3IoLY6bYu+OKbQIhAMQaJCelQeiUedn7ieC8sdukK+lsIy+0nNPXV5vGSG1S"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.9_1642767285181_0.5314910778842892"},"_hasShrinkwrap":false},"3.34.10":{"name":"react-query","version":"3.34.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"f5a0ceceaea102643db29991645bf53754a560d5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.10","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-AcS1Zarwrfi+B6e2HqPR5SGzdH2GNuETFwVxP7lqdKCrjsCVrTDxWpKE9VmNYUZrcB84cvcssESNoj0f549eZA==","shasum":"805f78aa78f4a0340060f5dd871cd2ad1d0b3422","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.10.tgz","fileCount":211,"unpackedSize":2246868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6qXBCRA9TVsSAnZWagAAdj0P/3n6pGh1pSvAa2R2I3aW\ncZsvQTw47/OXE3pyrnUeTkF9Aq+MlcQlxYYz05gdOUdxZbnb0m8agvFZHqlJ\nCuzYr8LQFKWGqfLZUs+7hLYgHZu0fBQJErxW1euwZbR4kj35JyAJwHPxQnV6\nxb3xnLmZLs7DyioyXgyP1QSBpxC0ARcMGKWnyPbXltX8aZtX0154XYkfHqUw\nTbUkI+9Es2DMsQl1q/Y5rSDBzuauC/1fhom8ecX9hhiI/+pC0QHGR/ZLNXLF\nLaX0EdVDWSh6mK73gwfPREOy4LctgjagbGksRbMjH1dXxYk9793GpJwVeX4Q\nkI5OiCW3fPIZA+aj2k1FJEDSKxxn35fhnywAUA2aiknuIE4l40FIVg/7YBaO\nPl5tp9RSzvQJkmQBZV+1uDTcxCGma8fLqqbwvm2tn9IJPgym1N7OCEA45MT+\n4Y0vOWP5bueNM9Jj8nY9zZiFAxia7xMrCA6G8oAGTclaCS5ZiVXXHUvNNiHI\n1cZSl9DouH1rLKn/wdDWkEb2GR6qgmErfjv6DEDRrk+PeFfo9QHKQkibBx5K\nYZ1Fqc1Wj5mSKlfT6ugeEdoMU8Cw6BKh4vqaHdZfKrbrpgnNKMHbhrGr53uN\nNPwXW0q2QqCdIXHWdFAM9gUhtfT4tmcfpCEmF+rpCIkLAMH0998ucYphcZbi\nWUZV\r\n=wtW4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcDJSy5W0kU9037HhraruSln7hNx7+EP9nKwLvpE4XJAiEA5CPFu48JhSFBwvKM4NOwwBhXpX8lfLwOrwnxpd4H0us="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.10_1642767809404_0.3203169005419382"},"_hasShrinkwrap":false},"3.34.11":{"name":"react-query","version":"3.34.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"c532d81313a9c036f48eaa8e3e6dd808e9587631","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.11","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-vRC9J8dklE6rQ1uQHveNgoXOH4ceOn6Ww2+XUYOrEsUaSBZ76aQ/VTzDanXJn+E78lFQn0ajdSomduXP55iCwg==","shasum":"314983ce13fef087d933cf1079aa2df93cb8f97c","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.11.tgz","fileCount":211,"unpackedSize":2247464,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6qgZCRA9TVsSAnZWagAAbY4P/RapiGPdAubw4UtGB7SF\njI6SIn2gtfmxij1U7Cx7py/OjcAhaCQWqxxsnVh/+u8wIfrzVKE2HrJXjGRk\n2EHGp+B9kxazqK6CFtFFI02tZqd8wy0qx8YrXGuPPWwJx5RflZro6VnqsTcH\n9QJEx52VbsEedL1cjEkMtOIUt8pgTxzAyN00gqUzbKEh4mxEMeY4Srkl+0mC\nqqzwpNv78KpuP4sAeMHfWqDUM4fs8e6u4qBWC1EFy0rPhNsIO/eSdZE14BX1\nNu3HoRYkP35isVFJ12ZE+8fMXGDJuMNy4yUnXlNqb3dLLRKo71M461cIyCqX\nc9uYH5A0GtoBjB8GU8sDQHzPw5KUmxyCalhLWdXPa+EPWTMg1f4ykrDpPPyA\n9Gpga3SZfbEfpH6uRpSrGGAF8Z5awOjEP7yoqhetms6ZNjw8st27T6KFDol6\nwMiLc/C9XLnrPPJh1isXzjkREjZwG5iUPxGFOciitnKXat7VAWbZS0sQWvfE\nHirkCUd6dks86etCUozznXI84MZsyKcTY/XGQ4nB5xbxyIIy6+cV/EqQT0Mi\nDgyd11EdDbpz8uqVAlfUTLmmADZpZLKSNOFsay3FlDzkNSfMzLRCMz63H6ik\nlqlSzwKRcKzPImcfaXi+NXLchbgYzwBkKj/IOnAXy5CFNKV3D8uE1Qy20WsB\nFmrP\r\n=bhnV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZKW9IWqghfQtoVwrBzrGX2/hSv8bA9y/T/8Jadfqr+wIhALeAU7Nl1PRSNDh0Xw72kmpss0pQ0hJ6j4kD/eOTsyXV"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.11_1642768409091_0.10368938158981744"},"_hasShrinkwrap":false},"4.0.0-alpha.8":{"name":"react-query","version":"4.0.0-alpha.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"47bf076cd8df722623015fb24f8fddc589540af8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.8","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-uTwiBRQNHlVzGGZvIrO6YonceBvbRpUSt40AAOh7PYfXzKiMH6aOsLfR78MZ5t73U0Qee9bGccbQcUjOi+MV0A==","shasum":"37d98504c768a42f43cdf3de39b84c556e91baf7","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.8.tgz","fileCount":202,"unpackedSize":2259466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6rSDCRA9TVsSAnZWagAAO1EP/RfTYYJ7xl5At+s62NMx\nSbJVoEDou5ji7jKGpAdCAwGOJHs+bLQMWSnO99ByK2/uBmc69WCr1/5THX8m\n3SL1DpMYeaST21wjhDxfyEZpHGIAMVJlWqRJlC5gvVcR4LuVH2mJLgr2RYHs\nMqjdZBJHC1gzO2C5QNxyM6e+ZTnNGfhEx0wFpNAi+NvdplYlfWdsb+L9HyYM\ncg7hz9BcwH5SakgFitmhwPjZsB0B7Gk4vDmAWwxkQRtrLwL4lHCzo9qhdsJS\n32Wc91P+VXHiN/Sb6bDQQQNB2SgspRfnFNIJ5r2d5Lvs6iBykNUrt+yGcvtk\neGV2/DE6StVqitWFYZcqfBYcPyumMHr2GhJrT+oHG5HRCaKA9FYqAhARFAkq\nuAdHWV5N00Pu+224AUPrx3unx2bbRhBja4hwLllhDVkzcptppRfAtOrZpxCJ\nMBcfflRHNeRAd5Ty8leS4tYB1CpbRg6KmEmqBtciwpTa6RI6ADAxU0ViurJw\nR4f2rGYelH8asIJdfARzNXJwpJfSW69KoXLLcyf4EP+3WC8Hy+4rsZfqt+qH\nAf8MCJICsETMhM1rkwHcIFQEWxzFqrty/eJDuVZZJveCkeXRaHwGXpBu148+\nVl/OX8l3+8O0NaWsL1smwwmOGt62EVxC6kZpbnthYCpnoi6P42YRhN7zoJuu\njfgH\r\n=booi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyvLq52oKnmcly/pUX/un8wWSgGuJD0UvSagKa5W8QZQIgedjPqsjl9X7eMtn+6MBtWS5cXWFQ2VcXSw4qHcC6h2M="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.8_1642771587206_0.6372869393709191"},"_hasShrinkwrap":false},"3.34.12":{"name":"react-query","version":"3.34.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"6710bc1715fee2810ca3a35b76bca71738f5da7f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.12","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-flDdudQVH4CqE+kNYYYyo4g2Yjek3H/36G3b9bK5oe26jD5gFnx+PPwnq0gayq5z2dcSfr2z4+drvuyeZ3A5QQ==","shasum":"dcaaf7b629f0868aae8afef9fb7692f6ea7643bf","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.12.tgz","fileCount":211,"unpackedSize":2247602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7XmDCRA9TVsSAnZWagAAYMIP+QAk4IQaTlGEyILrYvGh\npDKQsoA9C2xccDV+665v1jf4PZBZzmGUqqQb5f21lWtfyFogzNlXdOFNqjn3\n6sD4bz1UeGuq/IgEDr0/EHFPlBvGE9yN1yW9h5ZAgQtYBfNJUUJwgEBB/Bvs\nFX0rAokxpjmx8bNjwdFQY6p46up2JnPP02ODrP8NZ9C/1FphNamxGhj0tC/w\n58z0WEzjtNzAzOzOg3hAuSDM98r+F1oK5bOHKJpN4a21Q09ITmdSkzThfgvL\n2m2W6uYFq9+9TjVRyOmtZ36kMD3UussfgJFRf/IlWqLtP1aAlc/YzXGTMY7i\nt+3BsKQszhBGV6SMvEudj5LMPglgcDgOyOJ+lvrfiOiIKjfgMt70Wt0Woe71\nqbPcHeTxqjq5rND2yS1FUC+jJ9VnplIMTMP1bpJcuOsu5ZwjZfE850IiqGNg\nUkyoFK3rI+gNjXSYUsvcar5F3KrGfgkUnphA4gcagtUVZU5mYkQH0drMic6P\n8w1X0llhJKtxTxkKRLwQFyl1VfiSmOk7vppAWuHpAe62d7N5EL1jUQBtf2la\n/4VElLqo0zoN0rxTejEWNMdrcuyt5DVzKZV1kqqClW6L6hxpOVQH7EkiiOhc\nrmkHfsknqDtxVi03drEQZfBn5olBHCNxl3KbgfQjbAHFsGHLIipcEBMl3Mln\nz92G\r\n=lxlJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+DeEkWlfj+ciBdu2m8U8CHiZTfVEQrQVMVvl8GF5U8AIgbMmuZZ8hIxKRlFyPU9dsobvoSgEinbcM7mv2qJq0iVk="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.12_1642953091265_0.6681991798363591"},"_hasShrinkwrap":false},"4.0.0-alpha.9":{"name":"react-query","version":"4.0.0-alpha.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"c0fc916cb3e7d32a05e9356b2f1359c3cd5de573","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.9","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-cayhbLAWS7T2lAAxEfxlav/9+61xlJQPK/XWwXKcaQS2/2SJbUs6/Y0a56cT9OoxsHhN8OFof55F3Xrny3C03g==","shasum":"0b93908a3dacac3ba5928936748c9b9012c15142","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.9.tgz","fileCount":202,"unpackedSize":2261343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7X8ZCRA9TVsSAnZWagAAqoEP/iZkW6Bs4QZXyV/wCaow\nXqIEJ4CFSMiH3iIPUas/wsTwpQtHeceAffgFGoZ6F3hXTnVYzcOGlUJ7nPcj\nv4nj2EO7jXP1KSZE6jp/brXpvhhmqQdjkH4WUcZfJWQbv3z5H31cVmgihS8i\n+im1DYPV7XkiaS3amY7Mu5rnNPXdBiXgDouonZbozsDRyblYSi7RHo+mPexY\nnGkoWgrdSMRGVx+VAUQexRR0Zkb/cKVRVXyxTq5T+rjSpAmEnoc+5yWzdDov\nZ5Oy5Q8lXrLCqh+J0dIT1/TO554ONslb/XDCHz+E4TbCQi3H1AkzatsHDn0q\nmjUyU/Lr/wII8spF1rvOPFzgB8kPxOINFOcDsi6DsSW3UQSHeKVsocyd9u3P\nXm99FCUry/Achb+cnhSV8EmWHPJrQ79XI5MVVJNHM5JWtaqYEPAawjJIBhdt\n8jSUMhM1+ONA9CDVJGp+6iPpXgcM3CvGbsKoq7hAz8PnoxfzmXoXlfpxvsar\nAjCM81Rto83RpiU3P3uCQTUf5y7BH+oWmPOn/QgEoJpPupNciJ/poYejNaxp\nCWQ3QvGRch1uR7oU8Zl9QbGbUqCu2bxbcvpooWJfJW6syVSFffoWWuABW2zP\nLR/D11Ubr2Se0uZ8gvTn8ebgb36iiwbg5syR7JvgTemo2DMcqUnKkADh+mET\nAR4h\r\n=fHP9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFftBuet9nOHDkwGzJoHn1spb5Az9l69nOYeKUn9d2vHAiEA0i61wxVn6sd0dem+HVaHb7UE/UmXDX9wHYGViNovpbI="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.9_1642954521657_0.44018991876241476"},"_hasShrinkwrap":false},"3.34.13":{"name":"react-query","version":"3.34.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"a536773b00f9387463a7bac8a436c45fee4eec07","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.13","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-fGEzTLgXy2SGsLZbNY6qUk6IT3MYbWADRY+nyZoDJdCuplt1r/MqZO1I6RsvKG0qAuYfg/l9Er/Ce39xrb4epw==","shasum":"6804767e2e00c780f29fc5cbf923e48bb5cb7f83","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.13.tgz","fileCount":211,"unpackedSize":2247707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/il6CRA9TVsSAnZWagAAOIkP/1eRBQelSZITeICsYxlv\nEaonZbQiWkSCGCHSSZEGqQ6XJYFPRFb63K6EiIC1VYNDYpjka5uHvZSwzQuH\nWdbxQnE+P0Oq83Akmf/KnWdHM7FZqR7yrRDLa7xBhnDAo5f6VegEuMv+B6IE\nO6d5s0volX+fcTsvog0eZ8+B3uTXcEA89tAs51bBdITm8AXcNlgcychThSlz\nv/M/P9O3gfiGk5tFopDpFdSh+Ld8tujQ5NgxqLKe9tQBq0IKrdhaTVS2l8QD\nCuUnvbj3vCQw1aEoigY1Zyu6Ye193HWkqKNso3MBaJPPkNb2/Fbp64RAEQg4\n2q286TsAWku402PfFnStz6umVeBMwADG31iwGhSPltcvu2F58de/+4gRGRcN\nGYFj6yh02EZBFmDvdTWcZ8BkA5ZbDqMItoccNTKsTI9HML7OtLUgAF8cVrh1\nf7GcoYVYuciELAgWP2ZOv4B6Or6QZ2WKmlxLGHmQHXX7HSpKAIDD9cnZ++YZ\n40ODGl3tLwLR1IoSnedGb/wSnay0zUeKgnvJunyRIgNHskLJ8AZ1yyjUKsPH\nQG0LfIFnIuSTu3kr7DwYjpv1I/jIW1EQxjbw/cprpDWUTuWRxlfRQdA5fqFL\nB+84mIX45HDDmJHrglJd0lTztFA3gmPuD4XGXAuLgD7i9DWZsKyrAExXd8Vg\nAOZ3\r\n=ocqb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcZDpJLgPu2goM2DhYNXPk4RwJqHp+o3WzrV9Mt3u/pQIgLdnthnm4nJYqlf7EN3CROQsP+ftHqJIJJG4EQO1oZ/c="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.13_1644046714622_0.9361256852987114"},"_hasShrinkwrap":false},"3.34.14":{"name":"react-query","version":"3.34.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"b38eed6326bb0bc9b116abfa0c0fc7c5e2a46cf7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.14","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-KVMnM8omt+81oO9fPZfM65pGhQilpWzGsNwAqeeLMB2sG3xwY3bpIEYbhDf7FFgsqhAQfSzmCL4gRSiJaWIDwA==","shasum":"ba944c1c36bbeab3e7037c42e8e862acd73111ff","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.14.tgz","fileCount":211,"unpackedSize":2247946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/4wNCRA9TVsSAnZWagAA/ywP/AlvK3B6uxQii8D9p8ED\nbGL19iNA0+f0oV7NOni7im8MbqKEMFwmDXWoYBhVVGPkfJhx5yoVxOTavMcY\n3bC0HMHbeOCJj/QJWKssFTqvzqyuqM7GcG+N4dazUiK37lp9IOKhh782atZz\nmg5vq8bTmhFDSRA6dtDUJPAuAOvAjPc1RwXTNFblF/b9Keuc3TezuVqBSsoz\niqfm854hOO0l97iuc3qzZXZjWD7YKUPLkyxTIu3KP80jxIUMOvkrE8ffOOUY\n9YAlqXBUK0aUd7qQ8/Tbefd6R+rYOErklgJ69KXIWJP4EegexS2UdveOINf/\nDCvC4Ad38oXrdDscJXAOtKJTX0Owto+KjnZ5VpkgetWIC6iyuxyzcwwio6PF\n6cA4Tb1YVjD6vEW82UVL3mVPV52YeBAJSnU0yCiAksZ0Vl/6r07UcOECnFfw\nLgkUNKZBePtciaQojsdMyx4G0RzDrHDAYxmemtPIPoiHfSrfJIRUczVpVOn1\njnsRe/pK10rQDp8QfypRpUAbeZD9Y2E9fuLmjMc2WXn9Bom0e8bQviwXvSG5\n7GJvwjVua/T51lA2xdle+SeHwsgDTz4TgTo2KkSyxygv4ACJXIBk+bR7W88O\n8oe24ESXATofCjVyjnjxrv0yrxeJtGmEORYj2v64W8UUXZd9bWKhtZ9+vIHw\nXvVq\r\n=j1x+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpZF9IJhi12c07BM9zHEtpLlAPD5rr8L7QwR4wtO0iIAIgQFFQ7oPoRfn8H3UnrJqEccuOSvaxMEMlDytKjDhdbx4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.14_1644137485625_0.785528465653974"},"_hasShrinkwrap":false},"4.0.0-alpha.10":{"name":"react-query","version":"4.0.0-alpha.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"2b5c33752645c3f3c842491684cdd43b1e654838","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.10","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"integrity":"sha512-2HOJsx8VR67ixKAE6lARAHehPH+uBqOx8eFqLuoweIjeNHRhYNIqRKKWi9TVX4aiBWwDCfnOg4LPrMKR7rd/3Q==","shasum":"dc8b0007298d2f199fc6d65e11054a98f06002f4","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.10.tgz","fileCount":202,"unpackedSize":2275026,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAAshCRA9TVsSAnZWagAAdwcP/18UkvUSbClY2unvU5C5\n9TOrQzvz23EPgf1vnftAEJj+3RR3rpUxPwxGqT+JBawesm+to5t1YlX4aoZL\nd1TRhrHJAK1OHcIjtWmC1S2su4d654YN6pzmWm9UskcGrKGol8b8wtUJrAMJ\nhdUYgDK7VLsjijcJaYyH5iMNwP+FDhoriuRM6hAb0Pbk3/yspsCG1qphR5Fu\n8+qTBsAbN3zSvotWKtQEhLJ+HEnV/HhSZODD0/PNgySbTGANhLNhcOMJdszA\nfhjLC6bxVAwPycR2vjlz0gAWc4q5y1UyJL1xj8c0HZsUjb/k2XL6D9taHKIF\nY9Ntne87FXFl5qDjnzCBBu5pw8/Vn/DdIgC+lWNgxks/FkbgQ8nbdgEStLlD\nBwEWnPk7nKKpThfyOPhqoGOQTcdiUemRbGkbwn3bcuePCtVbKZDl6/QBaf7t\ndqewWDwzW7s9hzDrBLGIP5EAj6pbkYLLqySFR3ESvu2aXaxRtpKiWpzbmCQf\n2YyHqKFDhVd92ABwgLpvr/riootCz1AnIOjdnMNV5/o18anytYfo4m1hGlIn\nG0aO8ZDe2FIJF6cNi+PkbeXca9rq/nxiw3B/i2DmiNQUfrarpla3xPuifS05\nfS61fDhRnvCdDEg758WbIQ65V/NYTCgGl/1eEVziVte8PF+Wxkaj9U6m2XDh\n7P/H\r\n=YhCO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDqQa7zte5z+6fzmXrOw9Hrgor8A8+QkL6yHFuqtGp0fAiBoOHjzqGkCeXBPehgIzPm3PXggIVhwvNihxDEZJYkWKQ=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.10_1644170017168_0.29602756185612145"},"_hasShrinkwrap":false},"4.0.0-alpha.11":{"name":"react-query","version":"4.0.0-alpha.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"7ee784f08a670d367de1fa5938d16c816f1f2f7e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.11","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-Et418htdcrtcZaSOvjTlPsWQ+d0gr/UojaZC7IZjaOPi7eckn725LjVBD6lBHmv1r07bCibdrIm+13waGUuyNA==","shasum":"dabb185a58dea60ace2c29d228e37f24bd61efc4","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.11.tgz","fileCount":202,"unpackedSize":2278504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBBJRCRA9TVsSAnZWagAAS9QP/1iD4s+OWoxASjrhfZGJ\n4j+OCiO3F1qrInFPs1MwJBrlfOYxsrkK9OQCroWXO50XXXTgS7IK0nzMLiAt\nxnliLH9r+lFrtZmTge4vihIFd4/akBNO/xkS0P9EFKWWgDfUiN6D79I43K7b\niXTASDM3j68tFu/v5bFIFnoh1T+gX3DLmD/qlPbPfwcrRhmEYaUFfdhzCYTZ\nIfEebDYc72oAm/S74dg/L3Nw9Hg1kcTXXloZTLL6KSw21rJjgcWsE0T8Vrwr\nTdts6WXMCN2fKY9PLzNBWGQ3bVLmkM95Gbj4wX5v9cqQzi8wiqGm1VLeSw1t\nccea9IgvUb+Ep224h0kBHXfPSKGrfDTNPG5lyZgbJ1q+qtRpFjDqYmJ1Jgzh\nseuqDrz5j+n9zUqyftgcXEEacFabYp5JIYDocCgaJVzIRols9cQ3fn6KE6Dv\nJC9a6TLIQIoVeltmO0ZnDDAxOjyVR4VlBwWEc2pnNmAGfrIfa8Lk40yaPexm\n+NKc4t+z2KyoigRRwPcFuPXFvI2dc8os5T4584rnRG01qy0OqPXZ+dzJMgK+\nNHSR1fHHPaD5kft0MKrkrKMBUYQOYVweMDqEKDciownz1Wx6fCzj3pKRmVNW\nIhK6nucKmNiAkqWxByWWYI9LQg3XTv7XAz7Hpn3AmzbUCvo6PFX6jxfDdto7\nXFrg\r\n=D504\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDflsh4rmB49h0pjCNAn/dHlS7I2XynrZtRQnlDWS+B8wIgLNbWTnjY8lx9D3x8C5pUe0bgGCnVapauHxa25R2cJ+I="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.11_1644434000743_0.11355725343426037"},"_hasShrinkwrap":false},"3.34.15":{"name":"react-query","version":"3.34.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"9b5d18cd47a4c1454d6c8dd0f38280641c1dd5dd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.15","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-dOhGLB5RT3p+wWj0rVdAompSg+R9t6oMRk+JhU8DP0tpJM2UyIv3r4Kk0zUkHSxT+QG34hFdrgdqxVWxgeNq4g==","shasum":"9e143b7d0aa39c515102a35120d5518ad91b10f6","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.15.tgz","fileCount":211,"unpackedSize":2248138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCAhSCRA9TVsSAnZWagAAUNQP/is9FcyYo3E1lfgmd7GB\nuELqLydDNSbtMPb6nj4MBGTn09wxelZt0X458GRwGko4zbS44kqRUN8wxjdw\n1Qbzij2YUvIv78eo7sZUka94Df0NrghxkUba9sreXDZLHnQ3vMtrgJl5GzAP\nBaleUSsfYjtxBGuWFwrzQA314TB+XYxJfS0nn+HIaX61b5RIpMm+zvfjeWo/\nFc/t3ggQ/dx594WGtUQWzWBSSw46HcfSynRykTMO12R28QVgvzkQoK6nvtKw\nMWO/Li10VO9QpxZ+1xriPpGovQSe9xUvYkdVPybHENDyB7y96s5cWRAVGAsG\nVxg6cETDeFeffRkFrKyIOUKDwTUu2xb8QwTbyGBz29jP45Pn5LVJ/hdgHDtu\n5Px1/cSiX1QpxSpWoe2IS1vAQTpuTknYS/Zhvyxq5zFmxTUMb+LbucbdC5j6\nUdqsyp6bdey2OzbkNDC/qf2c1CmSnEdwO1HZ8c5/QM7B5hcLx3k4UsB16XHz\nqcQCp7q4UZfj6QzcLTCeklFhj2/GJmm6N8uh0+WwaP6pBIP/E4jGJ5HthrHP\nSMOoQT+xsUxPunp9cv4+ALk5Bpg+pEGdC3kTe8fj2WrihgcOR+mpMJ8jH1r+\nZZ+5VqQN8JGD8nNyIZFo6gnZoJY0+YGYqfX4Ja6dZtq0aWPn+ee8FrNN6USm\nITCf\r\n=otAa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5xWIcMto+HpcB//3rK6numH19g1nu0dO2fCDAyh2sCAiBpWq/jPW7z4bAh+/nqQh1d/LAhCjZRHf/zIkkWgo4vHw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.15_1644693585944_0.6717551925455718"},"_hasShrinkwrap":false},"4.0.0-alpha.12":{"name":"react-query","version":"4.0.0-alpha.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"09813789dc07df788083f3e5a8a87cc452241da7","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.12","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-BptAj4yHKfdBXad44A3Evo2HGQFt9CAd35mAzQvrtpO5KmXsfN7xeNMhBw1OSpPtLe9FpASRqevk+Wopdggutw==","shasum":"4b8d449337f4614d48892aecd4b15c6c5b3b1fae","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.12.tgz","fileCount":202,"unpackedSize":2267435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCAkQCRA9TVsSAnZWagAAAP8QAJiB+wX1zrEGHXBfw62m\n0zNbl5cBCtlVCGvEJe7BGwjvQQumi6qPnhWHyvbty9/pG4HobYlDqj47bsl2\nZPJ+JMafxxitrXJJV7Y5Y3V0s9gl0Jo6AQDhIWesrUNjfc95IczKO+OSzPbL\n1PvhKYKJje4c/F15HyTDG5AxOFQ2ytwe1PTpVA8ATzjQkYJT9mSo8bMy1py/\n1P7hmCN9TuUvCd69zKmc75G9PBF5ZXsFJGC3YJj+ZaegoWK8tj6RW97hYU4j\n7yQA0vmWjJjU4qPoQoJqi25fI0l205bnjNsl6B9Y8xWNDjzj5qk3tZiQSqOg\nKQ7T/iLJ44fTRsFHa2yJLFzGomRkqd4SpxCL0H5es3iIFhoaA6QfmUrtCyb5\nSabXaEKdJPVYoCBFRPuO51afda2v0LM0fHfWCJZ41Tyd0px2FdCz0gY13B1e\nqnM0bKv4Lpjm32HEzKwVxkuMrat103R30am/WoL5saFzb7IAS2V4ptPfgD49\nn9BvSRXFT7jEslbu/Wv+NcBX2EF628Ycmb0u5fu6Za6H7dv60Y+pZN5E9i+Z\nFADzKXH3WawoFipstDhdC+XlqyXjv1YS2RBtoAsAmdoODpg59Gx1N3YVT9+j\nFwFyUxi4AOFiI8dcJ/PWR3iWepC63e0M6LYXiLZVRJSoJyQtJXpFOxDQScxm\nGWq6\r\n=UV7K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9LolkywE+Bt4MJnjLYYXWztVakIQpgU4zVGwuMnAxwAIgSCTF2N/lawRhELAgzPRhrBzSLs5Zk2YZ9rdTaqX3etc="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.12_1644693775862_0.19815704646821986"},"_hasShrinkwrap":false},"4.0.0-alpha.13":{"name":"react-query","version":"4.0.0-alpha.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"ada0e341c8ffbd748cf3b2c91ff3c0b3bbaa00e0","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.13","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-9Eu4kyN4PqRNvFWsOVYULO+j3UfXBVsKV2uu1ueyPXhReHgCqwkgN3byGfQOHkpPhVviTKk+9h/RIo/Sgzhlwg==","shasum":"ade7f4cff894dd529ba813472f233d102a8ecf5d","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.13.tgz","fileCount":209,"unpackedSize":2287471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD2qQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmruhw/+OoJ74Z8QcQeDubsDA7Du566fYuMjvFDAKkoQgRLFubUkoUhD\r\na9MI9iePMGg+YUYZVzw9us/F9yeC6tcP/bOi7DHzYRELSdS0rgni+m3cmDnJ\r\n1B5Pto6Ut9IMmvztTXyUMfSR5QPynYBEiHUB2CUeI7omigEiEv6jNWVSlkZn\r\n12mXe78qu/0Plz+s42vOIGOYYUsTQcu03579hCHLKBKluxnBBhg6bpSHgA9b\r\n2cqzMdUT/8AnFAzjhB+KDJ872radH0WvRKvq5iBlek6c0X4cT9pDtFBgwSeu\r\nWLj2ZbYa1pne7AmCvLR0LFcISn+arWetnrRi7QhZGKh6+5Yj1hfj/1JbU7r7\r\ntHTezmQvlM8RziFQ7ooOilpLudDiPgIMf8lrBvqBqOa1wLDWSBjPkYLyE7bP\r\n89LWO/RK1vccuzAUa0a8mPXYDbQ6ByrrRaq+lWreDYmIzEptOCKEzOpvPlnS\r\n60ZxMM0OCCoeyDmOGvP0QIQLly6Bm4lmE4o4UzPVjiouDxsg6brkN+SGd9Wq\r\nHt3poBftLIkaqoFyOIuztk6SBUBOWc1gpea+RZwSj4ZlC3IENLUETvhHeG+b\r\nW6/RCKsQ18Jn3uZjtunex69oGRohOtwXlvMcfdg4mW/rgIZUQmk7AL/v95lX\r\niHTwjx9qMHMPnEOXoTUbfKiyXvZh5HqnPuU=\r\n=apZh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNgCiO37KjRRiiTqV/LqQrRZVraTAQdP0ZB8fzq0vW+QIhAN/HZ/9Xr7JjGxfFXXIwu791oMdgRaPAmvCeEZ1hb2oU"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.13_1645177488213_0.1175691405429522"},"_hasShrinkwrap":false},"3.34.16":{"name":"react-query","version":"3.34.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"b44c213b39a258486aff719ba87a5f7d8c57fab4","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.16","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-7FvBvjgEM4YQ8nPfmAr+lJfbW95uyW/TVjFoi2GwCkF33/S8ajx45tuPHPFGWs4qYwPy1mzwxD4IQfpUDrefNQ==","shasum":"279ea180bcaeaec49c7864b29d1711ee9f152594","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.16.tgz","fileCount":211,"unpackedSize":2248949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEj6IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIBg//Z0hiWqclHliPb52P4y9zI1r2tOCJIsQ+MMZVASZJjJIx4q1S\r\nZg/POZoREP24kAvogaSfEE499beMi3IXnZFLUIEShWLTw7vKWG5VaMg5ZjvZ\r\nwksf485CLMg9B3zE0oxcBqpeQr4FkVPwpZvtFUSAuny1iudNVQnHljR3WIxL\r\n6BKRsfnyBUPPF3ANddQO9INaml+jLirg7S78lNxpasK+/IoeS5hZLSAOgXiJ\r\nyyO4O/Qs9d09WewWYu9+vuWC5rYHxaOBjeCJQpIRxbheGcMGK2AlDRB/WHoa\r\nsyGIxQ6xnJWBkrpYMkoJh07g8XNMgabOBFpSb3vcaALBqJYsEJZkspU5RmEZ\r\n/2mVHN9Z7UEbcKYcPxiSkncdb7/slU67orHI07J2MNvgaqq0BA0uvGYj3iW8\r\nbHqg40nPnoax8txcZKpjETPrthmg6k9aDmJWLpxDx0Bo7Z05QXieZ4nOfs5n\r\ne48HtwrNzI90yq3AbQXmmnOxYYWL/9LMwPxLEGQZvH7tXtCWy0E5VV4yXAQ9\r\nJj57vu9F/XuMAYiK1YEeLvnQZf1kc9mg8jdllPQwVMrWxQbbKhuOnC4T0SG3\r\nuPswp91igjTiRFP9SYtt3M4BLJ5/goqGbpVBK+WYxKzVQZZXVN7f5DQpbzQG\r\ngOLtngRXFa3LKwVDkRnuUQ1+wll9YHIjU7A=\r\n=RSov\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGrdPqKmEfLldVUQL0ELj9MukYZvlLhBZZNXKexxxLgJAiB6g2pL9nN02iSMYwKMZHhRLP34EfmGRdpCJoROz4oGTg=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.16_1645362824079_0.3562520783894234"},"_hasShrinkwrap":false},"4.0.0-alpha.14":{"name":"react-query","version":"4.0.0-alpha.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"aa853d826d6776e073b9f5dbdd38e5ffa27a52bb","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.14","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-RqoyNAdw95Z6Uf5PcPUh1xVZ3jDw46qBw1cShMUR+y3TBUbyIsmfUaZgKbr62ikbNRnbFgIvXfYjI7SIUOlvQw==","shasum":"61806f890727fb5cdf9567bda797ff7b6c50c059","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.14.tgz","fileCount":209,"unpackedSize":2288344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiElc7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUlRAAg+TV1VyB8PpkJ8u4SO3nw1o83gvGre088x03IjaaW2ZKbLlv\r\nu0+V1oQvJLGGoE/fY0VotkZpzhjz61NN3wP+Cg3kUryDzB/BR1xRO6Nq4glC\r\nfcje0FGDabGuoiH+G9oUg5AGgOfLsT0AsD3o9NRHbWB5D/owNGcA1I2PqCrU\r\ni4Im7+BPdELKQ4m44UpyOlaICoGVjAYz7g3NXUtaF5xuO7cR9u1zE4btdVoN\r\nc58RwV8kKcV7kW0Iq00MpnSIN5+vzU8VeVB9mYClprhDKg+6eJGSJJ4/tjlb\r\nBxv3cj8AfnT9cXqw/T7h7eA+PG877PgaEQEiHxmGnRXhqroQa4BDQiPq5uEn\r\nLVU5OYcouKuEqtD79kpWjUx6GTkUqsjaOzn3OaWorbZqwXUP9fugWx+u1RK1\r\nRbWvzWT5hNq+gprLW9WYyAQfOZwvktdK+YNyAMZqEeKu8YEw1WldGUdxp+Fs\r\nOGkMRiWeX46mItCKZD+Pznn5shWIjhyqFfkXAGQvs/qbdKCJ9fDF0xt6xML2\r\nOj2DaHBYrrARlM6HYolGKtWlVmEo0N0tS8e2f3TZ9F1b+zPxpki7UgZzYLA3\r\n4IgjFVFrBSVzEqwv3K8mHkODGHoX1zX1+FJIq17q/nhYH/vRqdIi46UYBPOb\r\nxU0vQ6JaHUjeviZX5PAHyWlx6J9tvlEt2os=\r\n=naml\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4lAfbpNo/43kyxFIbXQpDqufO9xefXQR22xYHLQvIIwIhAJg3/bymxQyWeqv2v8vljU06KyUEYRo5KicICpYoigNl"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.14_1645369146931_0.6937892201384486"},"_hasShrinkwrap":false},"4.0.0-alpha.15":{"name":"react-query","version":"4.0.0-alpha.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","es/reactjs/setLogger.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"fe98d533cc62fab8ab88166a31707d6cfc02d058","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.15","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-qBAsdHwL+n5sVZG71N6TojeXWoOO/KQy8Ztvr2RewOpulkGu9tVAHeN/AjiDWl4BMpRaY69ise+n/HN9IlfZ9g==","shasum":"6b2214dae08072417015093ede6159b6fae6d797","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.15.tgz","fileCount":209,"unpackedSize":2286873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF+5vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNZhAAiQRjSsVqfvjwpCSgAvAHcLGhumU1ytSPZHdfSSHP0nzCmvwI\r\nf78222w5KyYnuga27G0Lz0c2qaKupJo+V3QbDhosPRRT0nECmkgXT2JH92d7\r\nOgCpHkCc/qlw8HPrkwGX4uK92sjJq/luU3KzcvavTvvLWl0U+BFK2xEUfCfe\r\nlt6KjFf5F312uUMOJZy7a0WlcKr4H0KGkOIaWfwx1eqcOwBrau9+v2dx9zPt\r\nHSqxm18dkm/YKnr1kd9KrirWkpaVL/gz80pwXYNCNglr/GaOhVrCYPCuMff2\r\nGIGe3ykP7ej5CXAGxgYIKwUak12M4gFefp28woe53LWLAsyt4nPykK461AC9\r\n+P7K+x1KXTNCOIRQ3u2RRXmua003QN+fgijQS6JjbAC966UNuvTp24wZL4Is\r\nyID40YcI3tGJGRy4ouKBk6GzU8x15zeeDcW0hVIZxp7XC5RRpauAKEN8+5uT\r\nEBvt2An08ezj2Pd3HfT/UOp5843syTovrLtH4lpjJU8nUjpBO2Hv00w9Qw2H\r\nQ57qLJYyhg+kBTiU9x0y9VDKYd5fotDoA2u07vOlTX43+pUxanAgxVOKuYGC\r\nCrtIwMX3Lk4TpbkO9FZXD/TFwL6q7XqP0bS4y2jzwrbe1Q+6aSpKUkagS2W6\r\nfrhRpnzzs4wZd5baFIieaMfhsxukCtAl/B0=\r\n=QjCF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbOsQcvdXRAUn9Z5+hNqV5rlKo9j4qiq9fraUWS25iWgIhAO/Sffp3qt4PhZ/WsawsJq/tXe4aZH27eiASl4tgoQWp"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.15_1645735535390_0.1731114644429801"},"_hasShrinkwrap":false},"4.0.0-alpha.16":{"name":"react-query","version":"4.0.0-alpha.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.61.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.5.2","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"315f0cf4698640a77f1910d2e478893d3e41a258","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.16","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-NulTEvmOwHiLDnJTelaCTHNYt4zjlEBAwIZmFT5UsMU3pB38ReRW4kOj1GUtMnyIwF9wNSYOUXkqjt5nmdFUeg==","shasum":"7c877e241e37a3ec45a13feda441f06fa51d9808","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.16.tgz","fileCount":203,"unpackedSize":2290036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGjvqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZXxAAhpYkaufxbhAnez9pQ2oN3IZncT0lDM3zvXNOf3aL6A7Nhija\r\nrMpr6GOKV+sz5vYNCj0gfRaDCJSrS5JGW9/JQJ4P2zlVvWRRWtRDeoL7GuQR\r\n1AxMs+IXFJyTZt5RpGGxpKHgGJCc9Ni7EwmTM7R5Tg+BLi8mRaZX4gORSJcw\r\nGEWM6aqvFzgDcOKfbY1WnGEE0z4eaVUsLgvvrrGNqc1DszPiIGu1VUq8VKMT\r\nU/I/+VbpSGCqzzsiNZ/ZVsSwLddqwdp14nhNxNZ0eeer3gMRqUFH4/iJ1Ja5\r\nyXW1YhfX1ua8fcCWce7BeI0I0g/7p1JIQlcxf7tE3JCAylrZBmzxa5fWG1lx\r\nKmugjJOJrt5/eUzy2wjuPRWn8NwVjRnlcNsbwHXRqNITlIucps2e3Ise9a3k\r\nUvzRIMu0hoASXygxHX1BI41XTXrAjRiGtQu8FFu3Z5F4y44ajg7tH9Po16+6\r\nDZMok5iex25HhsjsOmkKZ7EBsUiNU40qaW7xs5zGUJpLjcDYue/f14XIoes4\r\nir86un6hRTtplg25qWijrVzGPkVgmHCm++N6TYIdkkZns0c4S2n+Dlt6Xpj1\r\nHNXQhn5hHkvLBqy7wg0RhvO1DC9yoqyoNuKhvHyNMiyyFspS0Q0u33X4xaXZ\r\nrJxjutI3xiCY9u0LKsc/NgfV47BPsvhQwAM=\r\n=WEZo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeoKtlebAW/WiRh3CdbbP+QaXgODqeauxrfh6xVIpE5AIgFU2tnKnAlB4uRygJiXS1yCvYyg4dWwV1+AdwT8oHjlI="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.16_1645886442603_0.9709227766332664"},"_hasShrinkwrap":false},"4.0.0-alpha.17":{"name":"react-query","version":"4.0.0-alpha.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"f42689951de3ef5c56150bcc90fffb0cdd54bbd5","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.17","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-cpgMmmo46L3hhNEcfCwpdH6jqmHqo6U3If1vIdEKhqpJa0QZDzsXB/FyNfXourS21rHFQXDWG0ll6SRiUzhxEw==","shasum":"ee744b750e7aa59ad0dd0652c1606296b6a632a3","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.17.tgz","fileCount":203,"unpackedSize":2142986,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGoyGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmYQ//f4ADzQeuTZechdN0epuUybJXLhbvw91X14teIp9LYQGsQiGe\r\nbh4sCqspKTVYOjRz5iAGwsh1YdwqcxOy39ekEhQ5AL0pAo8ghmBemJPKY2+o\r\nzmvnM/T8dY5KKVa49bgXm84vqzSQTPOlwuzjGNkO/LkTaCYLOqu5NhXkvR8a\r\nWlEPnbQxYYB20zp0Q51e/Ly6n+nzcf/B7L75y4iOMnDhRncYL6F2+fU3zpfA\r\n7ELb4M2Mjghal/H6nVhYGgxYSK2M0VG+pKbp7d22Zam2tZV5Rquh3ZcD8Rah\r\nxtsIcVy5SDz1LkCqa3F0wuLDoEqDCemBCZI3MeJpqxgN4qxznf68gsnphv1E\r\nevGWEB6m+yppplwPh4cTkWHNyAXNVqsbE53ULQW6OA9dH71JID3ojMkHzn0p\r\niIKhidocR5gYO2RAZfJRgTiP7Pjb3tZ8SNGYu0lxRu/JSLsajSrnOb2ocplS\r\nfypVxwjmq27aZH94kQryCG6m/AmO4crf/+3WnKXzCu07jueSd6kXVFbT4i6r\r\nefmaGUne7UfC6yFEIcCkVE4+6G9aytKrk+RGxE5wQirMjGoA7WOw+nISO+zl\r\nSVqh2t8mwPO2eHHqPPrdISTICM2RhGHKUzz1Z2QltnvDBs0C7qnHphN/E1/G\r\nkjoHow8xM4F4QVznUYJ0hEohbBPLgI4RxZo=\r\n=/rfX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+dx1qk9ECNpgrK2c/J7eJMe4LftU2jWbGYKxuhMG4ZAiBdymdJjyjSUtnGgKamHH8Uxzk2ssg2qQMNJv2JA6m7Xw=="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.17_1645907078496_0.4345557077218707"},"_hasShrinkwrap":false},"4.0.0-alpha.18":{"name":"react-query","version":"4.0.0-alpha.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"02fd7939f505d1c5878666c8208bd487eeabcdfd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.18","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-yeMFhn+1tBCxFnQnvK2mW9j0jXgrBKZWXsjObGGyNZDrgTPzkjcF+iW6KBXimVRLg4DH/3Knjw5hj8WmPLbDNg==","shasum":"01e7c4758334f7b08891f64f27de41551361d1c1","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.18.tgz","fileCount":203,"unpackedSize":2146214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGyxKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrUcQ/9FDP6MbHPBj2CjW9YUTDmv59tdDK5lSeNwegBUDOu+qnP+Xks\r\nF9x+xzmvfwZxMNjZ6Dqjhu4WDf8yavLzt38ggUzD/myjkIYxeSmNWqUT3Ixc\r\nqMrKFwzRawVKERHLL9xUnrFUR48XmaW3sO6fvmfHFTuIl97SsTSINHCxaJih\r\nArFYC9Cp5Tzv5Ibmz+XEJQp42wPBaZ8WhZ+HxUfsHdoqclTm0OmLhT5FVLDf\r\n0DobVnzx32gNlgGRDMRXu6ipSbVai3RIgCXTcu9bErT3JOfN+G3ScKLTc48e\r\nbpYb0vQdvgRyrWFUp6qG/2QFdO0mGkfb9LJ17aONedlmuXA66vfYpUHR2s1N\r\nM7ymerkMwPjC+QORYMRlhmAyb4Xf4SVS2oFDgGmQ7vQt8QyGtO4njDMblsoR\r\n1ZhN3d322/w5wJLDo7S+BTXJ1jkl2BG9XxjHnjArsul7EDDo7cUFllg3p0Ee\r\ngk/KTsXvxZqOFbKmo+d0IvhWjaDugX3reNlN/JouXAX5BJ4uqhyRgqUtgu1p\r\nUNflQw+2RPiVxcFjCznE0s/wNeNk0B+/Fy6IFNWODeOJbeoX13ugGT90Rmya\r\n9jMrzTcnsAtJ91W1uoK9RGb1tGD+BJSVEnkeLZHNebu56JQ7qTkO1WZS5h2G\r\nfG8Xk299bEfGVnrZzpyV41Kny77+g2xgG1M=\r\n=ueWc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ4EhebougVdQEJzf0QOGxPqXQ2oOkAHVQ6RiDLWwxpAIhAJLcfdlv2y43ygTiH5g+PsY+uUxt9nvMzJUV4fSyJXCI"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.18_1645947978461_0.22949295200521602"},"_hasShrinkwrap":false},"4.0.0-alpha.19":{"name":"react-query","version":"4.0.0-alpha.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"338da80d09e337faefbab8312892d38cf369a7a6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.19","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-P5qjJW6q/Qn7cSL9lEX/KfCf50JYSEOdxgn9+mhUMMW30prXZmYfDHwQ14lx1MYH8QF9AXoEFaT5ETzBqv7kfw==","shasum":"cf7d1b69dd9458b5b7b8b60cf543e9a3972dd9fa","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.19.tgz","fileCount":206,"unpackedSize":2147524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHepTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+EhAAkJsNXbDQzOs3prFnK2Vr1hAMVSpqbV5NrQuIixHI0I18xnhP\r\n3AIGEJ70nK9iSrFxU7oYsDumO10OCEZqWl60SOgduqPtyHS+FUSfhFnmEa35\r\nbqCeLPskPuyskfbOCCElk7MZDSU4iPjD5/meJWgZLvmq2bHEq632riIwgu/q\r\nvKyxqQM/Ox5PztCEnfCuQoJdmcF/6+awjzDArD+28E4ryNZZSdPN4oTulEIt\r\n0J1agrlNSZQw57EK1uRYl7XAk+N6oTQ1u9mCM2XNlGHMqg4JeE36aOPBL2Q6\r\nEiscZPjeJniAbmoFxvtoeDVDbjSigTK4eKrBrUDWWLcU6rg8Dp9JeoIPiJ40\r\ntUsACwVBFA3/WeiKxsxYk6czvaf/lnj2sYUM1yhzpcgrRHAZ/Fr1m9QG8Ba5\r\nSGv2H6oI+tg0WoDZjDp69aDnjNuWe9HNt6Kc14z5PeT3uzY3QGz88ln3gSIS\r\nuzgQoUNB1xxX0242hN6KZHhEw68G1TyP74wSiM7OXvQhsw6ojwQmkrwmFFNg\r\n0jQeSva7o7AnGBayLCK9WdNYiMSfyxFxd+KKNUy2JRDcmQTdmz44TICEG1ER\r\nSBO7gjJgpye6IdD9PwOArHzLKNmVVI3nSKL9nePr+ptL5sYWgjojD7Ev78k0\r\n6pJ7BQ8gaEfegjMwK6q8ICW3xke+YBu9Loc=\r\n=lHmn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo28deykfwTVbJj0SF93TfPwMeXKlaottTLYSJBM2wWQIgFM8AVQM+IERl31+UpYLkpYBsoBM+B/K+vjS4/zERwWU="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.19_1646127699140_0.8769180433414918"},"_hasShrinkwrap":false},"4.0.0-alpha.20":{"name":"react-query","version":"4.0.0-alpha.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"1b91f3feb8f660578bc30aa7e0b88b4701d40c49","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.20","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-f3orLG0NieVKWSOA/hgxME40UzkolkLs0fURQt+GHrq/dnjgDsN2A5yvgE/uFpk+MSZBd/Mc38lYmfDFIl03Mg==","shasum":"17adacd6e9e4d84ce15506d97612b50102aeea81","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.20.tgz","fileCount":206,"unpackedSize":2147560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLkWhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZRA/7BBU9DezzZwnoY0arYM0Zfwulpqvp6zYsjAjpt6Rk2oO42k7I\r\n4rQ0JAr/ZjVqgil/SQX9/1gXfqD7sZyaY0ZIoWjlS17HnimKc2488aPiBN9u\r\nayw2dzPd3Cs/D4t9BFRuCFezDuk413y/JC3lrCwFoVIa710loZZR9ewFesln\r\ns4N4ZvUCKOXhf1GM6/cxH/d+vl+cyMh80URyOjAWtFgpaUT+TuglT+jxlgS/\r\nSNKcULIQJ8aBWaUrL9iTKpxegv/SFlA/Pqjl1QEyqkgzdvBaT1ViAt0qv5T5\r\nIHUfa87apj60YmBV635qffvJdcaNynhofysEM/IttfA0t+DtVxO3Xwvi0ESy\r\n/AqnMjbEwbbRyfF/z7BfMbzXeFsjiOoFkGJhp1MiuYmShAvY+XdIZw852tFf\r\nHcscKyGKWNu9/Nv2tUjnOcivSExAJf0CqA+TMHiKrxHwAM18kxujTSdVUd+6\r\njCeYTvEkHI6cEH3a7JGkIUAS1+S+/UquC6yQX0FwOmRRloZJTKfbTDGe9sGC\r\n1LV33rOVr+0t8H1aTJz1Z4hS/hdx+UBoW2aX4uFEkwysVFpinj9HXP1NMkiQ\r\nMvjpeyVZLhWBau4ycPDiZf8wDz9ji6LnKV8bh+8meBOf3PVStuRN2TBp7ky8\r\nBsT6STn18T0uWTdbl0vnZtfkpevYj4rL7R4=\r\n=iz3B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQXyw2cjMkLTq1b7onQyJdO6b/mICmApsXgWWS0PirqAIgayalnVM+GGyHZ3+keCt6qpjjIZxoIo7ETeAb6rN7ErA="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.20_1647199648856_0.7709929809076128"},"_hasShrinkwrap":false},"4.0.0-alpha.21":{"name":"react-query","version":"4.0.0-alpha.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"f31e1ed90441149bd27f26243929e817ce1c4672","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.21","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-pQYgzKNmmB7V65OCTA82JWRUNuFEOIbHjLO2SXk+88eoq6zz4BfKnZGxBpGW0MEXVy/Sg2HPlAVdu+chkfDtbw==","shasum":"13141131445f1eec2bab31dd45560572f6524079","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.21.tgz","fileCount":206,"unpackedSize":2158234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO33rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoULg//dkcAKBcJ7c87OtJvm1Qsuhl0PH1blTser1IDP4nookNEtogH\r\nkvYJUbx9zvRX/lqtjVhv8QKIyVNltF7ThaZgCtmRovAP3ZKsa9fGrE2NPv4X\r\nTjyHXwrOw/iMRo3YuN/J3MMmDxU6EX+fczk/u8qK+IbB36b4bkdqPqtaHpvn\r\np+e3FM6CRD1Mxjmnj81DrXiFFyOhCoFOHsSAveJKkGvjWsYXePCYhqhylQ1Z\r\nThtVH5qgaXQErV78mby/BkGC6Nk28EqBOhHt19HDHelKtgjO0MiyuKv5fUlU\r\ndH6QgetHVRcMWcRSDVsfrtdTtK6ifCbQsKEiW5edmw0CTj+J1BfjL3ptyxNu\r\nYurK8PltpsLvW+9s3T5qkOq8TQBEUZaT3L9ka4AxyaKkVgD5sgWIA77fbaZR\r\nbgBuiqJ9QfvniklhhU33UVK/yKTbp82f7K7k3hSuO36AMnKooZWVgjLyHXXM\r\nRfJqjqhuA5lvlbh/6DfzgZFCwX71pdrtckhOXue7QXMb4lLQZJLIGoYdR2hM\r\noq77Hd/5fO+VYFJVH/USflvQ8W5lCfbkwardBesKMMhQqO5XFcvL3gOzjZJl\r\nFrFSK8OU6BLl654zGVVNZAbJ9/+LZDonb8xqpVdyTjJNu8xMm2QKQoIJ+0L7\r\npwRnSPOyU9k9SjykL4It8R/wWvf+fTdyKsk=\r\n=WMyw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkoJxREk+dgglXkRbmiiC8GsVFqUzrK3E/HPM4OHRP0AiEA2ZFp6R2ucsHjgVYp6799i/3euwln46qE31+CYN9aCa0="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.21_1648066027149_0.0042206438768626064"},"_hasShrinkwrap":false},"3.34.17":{"name":"react-query","version":"3.34.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"31bcaf1b54b88ea8b583c0fe7918b6493ca68643","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.17","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-59aJeYupEIlw7U7iC8EzgpLyrfZ3GpAf3SCyZBnpsskJjaq0WltuLkezAw0gvJud9Qw6/AWtNPr73zryJXWeZA==","shasum":"98951a9c2b053242e7f32cd3d67a488812033081","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.17.tgz","fileCount":211,"unpackedSize":2261853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPMhoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1eA//UBCK7njRm819CAA+GmlEYS3ryvY4EoXTFwEifBkXitq21WpX\r\npnJ6w1VkFTRpwZQSxUS8BN49tZfJF+vBcKAZDK1zEEySXv+5ri3XAfNNE2aK\r\nTGx1lNGTWkLiQ1TVmS9FZkzAWLALDE1rEFuBE5O0N1tALOM7smxcapBMau72\r\nSDadLgcgUh9NCe4SjgzyzwCeYFe3Y9ob4lFXjOmjO8NtRCZXcvTEww5lDIJy\r\nWTiFJBlswtDyZehqXiEWF05NkBhBT9rel5MCy32ua6pk8D36KJ0mHgu/lPKO\r\nlySHnjEKaNAjcS8BGVbj5qzVdrXHqQYjyMCkx/YP9q3JohXyQZt1giyFUiXy\r\niNQs/BAB/2XczCO0ClNwblPF0yzGt/1Kasf22mrvNzbxYHLZzaw4f9iUcCg8\r\nMu+c3bMKYhtTlp2kNbCuPcNgiMj2c55zFWHO6Occ3dtYhxQ7vyW3PD7+TW87\r\nYQqRiPUKz7NEk0QQ0LSTD/BYd4WMXmYqbBDw9KseV0vYF0HubN3jdUtdIsEj\r\n/oDXgFwbnFsqMRcvlDv30/mo1V4wQ7bo+FYs7ax78zgCE8+crLnmz1LQCLop\r\nrDdPxTvT9bIE8RIVaBCkmuhMs7bpcqJuU5YPHEXRNMAjiXH93grT8h6qq8VT\r\nDw0vRuOiYsjkJoM6tQ9YcSR4lzq3TStmmeU=\r\n=pIIV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD385Lo7/kFpLYA2ynA6CvXyS3BQiCQ5Xg4q/rprKYZ9AIhANpDhemVr0U4F74VHFVD1rSI97CUJATugLndr32vcurq"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.17_1648150632733_0.24397291490453887"},"_hasShrinkwrap":false},"4.0.0-alpha.22":{"name":"react-query","version":"4.0.0-alpha.22","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"21dd633787cb705b8c2560dd08cdabb5351b4992","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.22","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-nkS3wT8/GL0pdz6roquaxF+GqsBgieWvZDoLXAQOpdFmhv1jApLrngzpIxj22kX68OvWKWHfwOa4prkeA71EMQ==","shasum":"a24f6b14b0cf22852da1be0040f44508aecad5e7","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.22.tgz","fileCount":212,"unpackedSize":2217818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPMwkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6xxAAnQQkCYWrHycIuwa2IsFjT1ybElDhifWq6boDdxNlvWqaOA/A\r\nN81SDOvAM+s1HAfPQqrIa7aPUYRhkPpsem73N6TcThAJPnuXiGyjFSH8zw0V\r\n9X9StBS/+gbu03W3/wf02D5cNtAT2jIk4ZIFxi1qOLjnyCGFpma55rvtRY4B\r\nDd8LGgrO1FTlkktScZo8ZBTeDJ7cOqGEIUkXP9Qj4OhfPY+a52eNT/Jo83TU\r\nx4WMS4dzbOPjYVANkhC+eNbjJfk+D7dsPHHGdSq/4Hk7zuhWUYhLzOdmpW4n\r\nF0Mbdo5kcZjuRBCvh5H5xwy4bEgz6Iok1Th6qojJfKwhqBlplekA9SOO1Z1l\r\n4qY+pK9g3pGEOKsOG7+U8DBylnx4ytKnEwNU7KdqSsGoCVLYveEKI7Oce/9Z\r\nxu3VRUIA/+YdyDs1VhFmzUZb/xXr3EnSDdqFE+N7KbSa8ihlJHXDPpe2AqUI\r\nvBaG4o5lHbzG/zJYODo2buhZnpQcz9M5V33+d8FnmyA/8OUzNnlqwfPueX20\r\no+Xkj17BhitI4M4YOZZZ2CXgTRHEjlcEU7KLBk5/894VFJ+w+QMBO0c3SMvg\r\ngYBpuR8WE8aM6LZ5xhnEXU9p/Q1uV9AAyUFm2OVUKxHCtQCEp5ZSDX7sl5QD\r\naJpeMB6FI4h9lXhq9rz/yRpTPoYayK5HkNk=\r\n=MxCU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTL7z8uYiCosDiBKCxV0TxZB2sTHRtWhj7aJlnCJ5y5AIgdHyLYQYWjOBBt5D8bA2oG2RfdhSuP4Wv0xc28azfPI4="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.22_1648151588373_0.6769065265851759"},"_hasShrinkwrap":false},"4.0.0-alpha.23":{"name":"react-query","version":"4.0.0-alpha.23","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"3ed5e4830581f04ea2a908c76549fd9a88115f31","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.23","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-5Wv9vEfySE146FWaCt0XWjS5noCuKYOhqxHtWHSDCKwSbgSrte8ZLQ8sHsnsK5Dp+msF9xNxzrouQAWfTNplSA==","shasum":"8ad342f81e8cf6189ed3eea5b89818275ee2fa3d","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.23.tgz","fileCount":212,"unpackedSize":2218379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPNteACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPrA/+LvyRZkaqxErEX/Rypm19hPtyoRgUpKaS2odOuNB3kbAdOUOd\r\nElxtW2GYxhLK+KPaHUTHo4uDz8DFwrSTw4G3U9mL6UHCo4Yb2qKePaNNVMUP\r\ntoMcQEUFrBZWzcY4+7XauP0L7ENYT+i1EWNo7FB2dMd9ti1GFnbCXqWlldiV\r\nlGSSqwexGIjuS6Qbyn8x1LefrdxezQIqwuokFWvnK+ReKgyTOX7B2CPi8ECn\r\nkaiAMlA65FB4J40iIipKFvbQk+28e0AzLpzOpTjKF/NVsC5ks0eDj6HpdYCS\r\nDLIwh5jG6+VG4makO7ed/O861seh5eGIdUnAILjlpTZQrYcO/UqsrlhSlnT4\r\nj8Ihfwk5PIeNQb3dmnLqw/HHE5ppFqQEe0sSzm1TTQIZoXO7Y3YkE3/B/jMF\r\nu0WiFvBe7ST2aSypD7Kp2JNivgnKCSBZbvuZCmtufNd0FtyrWwJ1rs+isNL5\r\n8CemhnJFwhgzfJulcMhsGblb9adlYF76qqvqshj6H9vdDqHlgblxHY34q1bG\r\nrgw8M141v+lvR1A0/xjv5ZGIaaj5DeBUllG27cjG/Ppa0maQKIyGArUBfYlU\r\noaMFRL4uSKqk+dPXBTThGC+r/VwgPdx2E98rzI2vVlrsrO6bog66TMBvXdZq\r\nJtpYdiwEXcp/8HZGCpQcFYkglcBhLNs83FQ=\r\n=QLp7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKGnFCDV4uTHXeoKdxPEw+bQVQSaiYbgkBOY1D5FwIXwIhAKN3nhd2w2xwziASuc4DyqoL8H+ehicGSU96r3gTAPe9"}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.23_1648155486296_0.37439013882448524"},"_hasShrinkwrap":false},"3.34.18":{"name":"react-query","version":"3.34.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"ba81870efbf0e0d5f900b1daad1b50b1057ed323","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.18","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-CVgVVUTRFQIKlpdIcW7mzdUX2U7bPU+tXgoTo2KOTt1+LYZFtdx+4aWK+1YaabgJgAjx1ISBrDMfPxzj/8p28w==","shasum":"da9027035a9974bec12fdb71965763398c1d17c1","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.18.tgz","fileCount":211,"unpackedSize":2264014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPsGpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoC7g//Qgl6QeH7bo+PAvqOr2Z7ezYnfUrxrW4dEac2QHfePivm4sGH\r\ng+vNQO5WBGGNe0wyOVe0VZTDXiB3Z7QAV4lN6V4qedbBLapTwyx4Rwp6stFK\r\nzjm9OsAjjswiaNXThjgGecjaAgiTaZR89KFk0Jn0RlhtA3qo0r+n+3xZItwS\r\nR+BWIVHA1JNhoYgHqK5m4PIpBTzz5L8hPyTp3fef8qmzq8DTipf3B219ZCm4\r\nn5IOxO7whctskuNWOBaKGdzw9AiOBnvGj/A/akKEQZwCm/Wh3KDzVJSM0XNt\r\nvJnMy//jXE/qUXUeRrl3i2EfhYy+VhjCMUaF8tasx09obq183B2wFfj8wtf0\r\n7k9vSAQsOi9sCCZGeDctyjk/7arYad38O2SmqboCZgUaOPfea9902OimKqS0\r\nLmSQENwJRzT1liePhEuH8ltJ3w8LZRlGAN+rFJA9T3lGziY9e7QIsOS5C5Kc\r\nzdfBtoKHX5q0uEYd901GZrTauc5c+IuzlkEdk6YhtDiJ/K4z9oEAmwjz5UOq\r\njyM53m5WaO87tkQKfsJUsMFV6g9x8JrTgyFXZWsbMErDmKS/dYzb7iyRl3Zx\r\nJ+Oy5t/HojqvqpHuJzE5ANRXlGA1cuOyJtNSLaiMXHYxf2HBf3f5ZK/ksbZG\r\nhjTXn8G9SkffV+8SQJw6VHDCPI8DPGpig7w=\r\n=mP0E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCerSENPtsYHigu+3FcYQGYt3nVNzULllbRw/j2s2f2uwIgQZzXt4pFoLeyYHY05RnvwdI5fAEO/RHJwaMd1ST2T68="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.18_1648279977515_0.9100504878644762"},"_hasShrinkwrap":false},"3.34.19":{"name":"react-query","version":"3.34.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"9f23b64396255722d8e874df9b7192d234e64aed","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.19","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-JO0Ymi58WKmvnhgg6bGIrYIeKb64KsKaPWo8JcGnmK2jJxAs2XmMBzlP75ZepSU7CHzcsWtIIyhMrLbX3pb/3w==","shasum":"0ff049b6e0d2ed148e9abfdd346625d0e88dc229","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.19.tgz","fileCount":211,"unpackedSize":2264382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQFTIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPOg//e81maX6hZ2nMKjXp+i3RiiO8Ojr4uZEAtluojR+jtwzaWztm\r\nlm9lBTff1dkG/epZWmWwMh4pNdceLl74KaBq/lhnPP6OUlM6vwlefoe9twHQ\r\nwaW0Yev1B7QeEfyCYKIRuCqAr6UdnK9dlyqngJmBifNLgmEhJttImVkjkDgV\r\nrr7tLencZFjC8lxD3R9fZZODOtlPjpCjjUmucZPn+8TO4c67OmJm+QRoiQzN\r\nBWBwTQf4Bcr0MFqNxmXYBZyDO3NRgBOi8KnUkCsCGatUphQV1JW4RRDH+nOC\r\nzC+17T1jumkK4AqCnoDjlKCTHrwDPEGEXdZYaQyZp6tKYZ2eM9wvCx8KOQka\r\n6nuUT+OR3/yLZ80UjZbpvkTRqCSlI19E2jqFDAkK1oUv11FF9zGMF7VjoZ0c\r\n3AKorxR/ejQ5R9xXeWAQmGx0AMnKmf/qciM3ZP3q7yaRLSLvldWI0UIGp4T8\r\nfIcdySoYgND03W8yUD+fv3279aagj8KM9TnvDUTFYPB1PVlMYTz9+omFAVbS\r\n88sszlfVdqgrWrDcT8HOFSo2W32QTXYZraIxVUq87Wqwshy2bCkri4k1s8HI\r\nqqVz3rhl1PzQhGE/bzXFSaxuN8xqkHPoC+mWVNse39QUQTcUYMdeJIkvt05g\r\nrbXMvwwPeQrXkoa0LMTqu75gTVFkVX539Cw=\r\n=FHq8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZACLHMzfSwjrj54hI37FrbYdjlCK6GSsmy4KpdE66OQIgD4ziyyRzNnVVCLktknQwlUcPlqERDqjJoxOUyC7vzRQ="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.19_1648383176455_0.2512538140272178"},"_hasShrinkwrap":false},"4.0.0-alpha.24":{"name":"react-query","version":"4.0.0-alpha.24","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^10.4.7","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"39a213eab7c86f6710b76e8866b3e2c4145c0d0e","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-alpha.24","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-iNymeOpWYOaiUEtjoYc9LwX0Mqs5mSyWM00y0uOJtFbLDj+gmJuZbcf6BOtLTiai7HEI/5N0yq8MaQo0P4Kw5w==","shasum":"7f8595e85e03a58e56ebfaacb0c5ebbd606911b8","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-alpha.24.tgz","fileCount":212,"unpackedSize":2222705,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLw/XBUuq0bjnn7PCjaz4u1jQefYcrI40c3FDcgZ6+3wIgBz50I2nKGuM7oZ3OZQMaQ5igmRZjVR5GeYoWlae6Fxc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSAtVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRsQ/+PhAMx2GkQ0Tsttb5A7wSFr2g8A6n2U1YDwjtGMYYq2Xw4iTF\r\nKQuzOTdugxVCsvBBFVDR1RCqcW8c4pX8dxUen6xmXnaLwEpmu3klSJZLm938\r\nMHEPBRRYSzGJ/RGMwoShCoYa1WabuRffgyimvmSOlhxKKNpOmXGx2S/5Zmc7\r\nIo/GuuJ0dVpQIFkC5tz6knrw9G3LQTNK0AxGwtvUjeq4fDyEtVoDIqoaTP+G\r\n6kLaIMLMhMUq2P+WqvHYorbdCZfhIKPfyUJXYrOXJsL3gnLOZJGHeCuPgx8E\r\nArFJEIR0PpmcsWiKAaoOZZ22ICFHnSgustsQLsRssWlNiwRZpgqQ3f545CDv\r\nSUSCJ4NRQH4IgreeWW3Wd8XjQlQEgCRRYsiyRxRSQpKrWwy8jNMzeaDvxtcC\r\ndgk3N82R6Ba6rnaYAyJUoA8nYGYW0EjTSXlsK3KPG21Sww5Izo2Hy9J0X+zp\r\nIizPTR7tmLZjUnAiyGOHTGRjUt0s5uDxdfdSUq4/Vs5PY/gIBZ15dIYALSDB\r\n6JuFMdQp2U35b8Fgmu6eYj0H15xbVJ0T8L8f/OQtg386FyyVOTOR1AE6rILw\r\n4JiyW+bzDYPX0l+tVqhmxH3V6Wia8rlVBWDS/YWlt3TtVZLiq8yRWiktgNOh\r\nglB3OsvNJvhwYTVPw2UWNIupm5/TsNZpTuA=\r\n=H7tH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-alpha.24_1648888661694_0.6857439774826068"},"_hasShrinkwrap":false},"4.0.0-beta.1":{"name":"react-query","version":"4.0.0-beta.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^17.0.37","@types/react-dom":"^17.0.11","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 3 -->\n","readmeFilename":"README.md","gitHead":"4d753c01c3fa3bb0fb7b6e8935e2a656763b2811","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.1","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-j8aOfKn35vxjE8wtO/JVLOpIhfmdvDECozuFwrDQ+HjfnuxaJ12bfhMGs0hpXyQTNuG5ql+ACCvafMs7/musjw==","shasum":"a0bd8487ab3895e389f57d97a0937fc421c49741","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.1.tgz","fileCount":212,"unpackedSize":2290186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAJQExoYF7oGo9Hb4O1dXLrotDJYoPHG5CEh0PUoWEhxAiEAvd51PkniEGFzJDlMDD/rR72xkWl4rPAFZTP1sqQVRGg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSDe3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvORAAlhALj+bD0axIlCYMSqtV75YUPt9q7qdq1GQ/clu8hyVz33Ky\r\nGaQQWBdJihROESJfz7Mp4dHXv86siNiAX/BYBzqNbRBol/gujpQeRPd3vIjM\r\nxG5rIPf3ki2knxKj/oym+SEpvgKqJJub88cGRlGqjVuPOK+JEXrAIAdhUOqW\r\nmcWBSEuL8eMUz0WCLYoyZ6c/mML5nnswGTDDi00r4s5YiyRJgTmNNWCcIwRK\r\nYA+uDTCorn994WLJMJw6TaZR+junrvA7qWJBIJ139/LhgSKv4jnj3Kx/dJQS\r\n3pjB8zIOesWF2uMaZ4UFjz/kp+2peSaHGSgb4x33jTRTsjKOaI6qHbXyGOIe\r\nmQbhkgn2827NVAm8Kh6b/f5T6o76KiHYzUnfE+dDOA+mlh8Igx40r5xqjdsl\r\n8wTclYTcYaq3iTCJbvA6K41Y2coION+ah24cu0JtLSeXD4Wm2MINdG56+eiK\r\nqxl7x9nKXGxsfkvIeUvlevEktMrpVKWkqbqNQvFU2hi53kzr0gEVWIKM2LNF\r\ntwNEQuy/oHb5ULhbiVLtDe6NJSJ9h6/dOmMAKs3JMKL9RtljTe4yEqaoni/I\r\n9U3GC7PK1davaQ/MPx8wcKFN7imfy8pAc91vMasSi/1o4NzpgqWpNBegiLzT\r\nwVI6om9ENwpAU39UawSmxa5+RmlBuNTrIsE=\r\n=Htpb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.1_1648900022819_0.8544895492090534"},"_hasShrinkwrap":false},"4.0.0-beta.2":{"name":"react-query","version":"4.0.0-beta.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"58a9fe9cf15c6ddfb0f55fd3437387c163f60eab","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.2","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-Qnc3urr0PIWv/TrY4httiow07/UNOyRfxiKJifg0E80ZphlL3s/7OnMfegy6cEK6F3htkbyaa35XhBf7Ui8lPQ==","shasum":"8cd72894475a77c739d0f433ea1cd250105f8647","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.2.tgz","fileCount":212,"unpackedSize":2290368,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmCPiOFD5S0IJrrbvPRtFkZFvVmsPfGVkEwMTxmSO0cAIgVZr6yOc71eyLwZ1HsDOel7Gim+IIBnALaO6L4kWIt0g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUAC2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqg2A/+LYXU7dV9ZcBzDaCO6lbW9WMBxE0fB5sdH0tdtSfFvnod9PeJ\r\n9HS0xPuvFOtA4BATdcAZvO90nkZIcKTaHTcrFZnSu0laKIIplWLVO4yIHBmE\r\n2fDvw0qOKu9NUmksVgwRrmH3k07d1ts8yNmygFlXPjBtSwW9u5X1KFFuuBH1\r\nJrpIY8Y1BOT3pef2TZWtXhYjN4+b1D/3ytInli22wqd91ChVldRsGqOwklur\r\n3Bn91lmLv/ZoeBfUr5oFAVL2b0l2jin5HNK+zF/7P3/mtkPIBNji/v9gPi6C\r\n7kclygrHefP0b0Jh5i2YCERGgizAAoyiF25Zz5PFXbFLTgSPX6LmaVnQgUbZ\r\nynL37RNGKLPChAmV7q+E5SCdrg4cU7p13XUxQAbxbpkuY7LM8JJSc1DqvXdY\r\n8xeizaKN9SuES3I7FJYep4XYZUhuUmVAzwD6KSw4xGS+vW+d8xNWBlz2mkKa\r\nfjFAy79jh3kfoGAOCDCf47ZwNHXHeOEAQ5osLZktvnRVyBnnvsC3LvMfZRcl\r\nyO0AoWazcApa2RugQezZ+g6CN6GKFCs0tB6jKbz4wSNXLwbK5GVRMIUK8P/b\r\ngg4b7ofECPTHE5URElN0Zq2m9ZNx8u3FoY3qNo45Raq1kekr7zVWuRXnxT1a\r\n+MgrWXojcOb0NCGYSrD1b8UHPLAVMFSGEvI=\r\n=miOZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.2_1649410230367_0.6377769384264553"},"_hasShrinkwrap":false},"4.0.0-beta.3":{"name":"react-query","version":"4.0.0-beta.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"5562cfaaa04bbcea141c553dbdb211fec8224357","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.3","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-WZkiBD+B3rVfPwR9e7W1TvshLYCfsCKx2t/jqpF/ZP3KwQnLAQ8aO67qtrP616QAK1qk3AfJMSsFtDwgYcq0AA==","shasum":"7f63d55f165988ff37bc58297aabec962ccda962","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.3.tgz","fileCount":212,"unpackedSize":2290349,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA2aZ8/IrducFwNmzcTMnJ4sDlye31tW7WB8ctPJ0d+7AiB61TvvV4wmmy2GHkqXb6p68Egh4UOuxDkTM5gr1+AogA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVQZzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmyQ//Q2PuXndmDeQkc51wWkEAAGIbYUyZ+KQ8zvwFPxJ0TJeyFDcd\r\nqlfJOXxAFG0sDJxM+Iy0D9va3j/jsQG7O70U2eNH4P/jVWPVe6qI7aCQ2wt/\r\n6exW81TrSISgjB2y3fuO7j99IOd58aQf25z/Z7kLpiZpK4ZeAP97sGhtwtxE\r\nEZpH1x0eL/6Cznw3fVIHRbs1fML879v6b4fcw3YgjDu6+CYcwhlHjU1yAjoU\r\nqyzNQshq0C77VRliAj/PaZ+N0PxTxZJ6FU1KgN/q2+P6Uh1oqzN9HEJD5Rjb\r\n+aWct+e4y4eS/8Few+85tcI/vWwH6ZYpJWP0dL1BGdwBIPJopTKjQYOOxEag\r\nNLKXNrtE9pOQR9YbizDA+Z9jzQd7S5Am8hkE0/RueqmffOKIp3fiE3MmRiDn\r\nOFnu4QJLEuwpBjzTC6ISoahstIbmrAh72FO0ECHALBKDdcwD/AyWe7xXC7ZK\r\nV1doUBCZVeyDT1ATTx5TUNYdQkKP+actBGZAU7mVQtyiC53dFjx2buM8UoQX\r\nD3qE7MmuuURmep8Mxfq7gkAFXBkTeZu8l57Knc7FRkKxvYfkFRREVDuruhgB\r\nUp0TZjUVczKlkh+6SMPE7pEAD5LhWnJszF2sYZ+e1K2FxPQ8pP/KoX3dP8/X\r\nArD423ixPjj524ys+PKes1ZIxPl2QLqDUAo=\r\n=Ha+q\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.3_1649739378853_0.6613062644497392"},"_hasShrinkwrap":false},"3.34.20":{"name":"react-query","version":"3.34.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"1ab13dc22efeb9270e38269efaa346e24e3fc0f6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.34.20","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-I0nGBu/4bebKodwwHSFmdMCjgx4bAjn2p5OQRFIlGX7GhVAyTWGRWEWAP3+KG06bb062HPOMqcy9jw086snfQg==","shasum":"649e83073b7e3350cd3fc78f8b2370e9252c4a64","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.34.20.tgz","fileCount":211,"unpackedSize":2264496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdx0Al18w04yR4fQBcyiRL6lkzcJSEn7zpnuyB/N+zawIgLdOdkYT0DTOQRV8AH+5mxwkrNgYJd786XvjByG439F8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWcj0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKPw//S8GQYU3wqQyTiZIZUBBK56NcgyTV6wqKPEKpdEfUvRuhPnzz\r\n2J0L8qi1M3jPEB5cQwyRi1rYpuZd9DUeHx2ZYXzCArGBa7JX7CJTl39VVc9N\r\n5Y3TORYJFhoDhvBB91ScaJOzYB7ZwTKRITBgip/G0XlFvB7ujN70PPgIMX3m\r\nAsDunTFAj922ZuN3NUlktLPV1yY8D3SRoRosvbbHcUBcF2GiFQAFogwMRPqK\r\nQ60/nNSNgo6/rAzW6/DWEtRWo3Xd0JONrVF6uLFV2sKC2lDyEltVCadAgnCF\r\nScZEOcb//52pQ3EwmXTzPU7MtnilP9dqB6/EWoXe9k183ByrhjkKMiCBSuzS\r\n0fKF5tStFU0xln+V+ewvxmNN6kvAGG0sKuimPmtp4NcqzXE6XNVBcikbPFnc\r\nHfYPuuw9sZopGh65ONT+SJsZTIA6FFmyuVu1EL1GwxiDqO70ktFWLK5Us7/k\r\ncNcGs3Naa3+XaYuF76/cixe/V3WSwoPLIOctugiVrIT4zzvyJcOWS6itlgc/\r\nJOk5MeLxI6zEXzV9hL3sNYBCu82iDaW/pwkpriBN55T1G7sZiXSD76Ip+Z9E\r\n17c/o42zLfEzuaPOY3zcMD01n9UZ5ZcPjzDa5y5OSVLHgemAtnGAZF/Dts2h\r\nzCW15NUwMSjIsDFq3WzKwd7H8bWt1Qe/Mvw=\r\n=nw/e\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.34.20_1650051315951_0.034297328134129446"},"_hasShrinkwrap":false},"3.35.0":{"name":"react-query","version":"3.35.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"0c667273125e5307ff148c0ce621b5d24950517f","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.35.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-mRBJdpELLV+snzyXDsXM5ZEXM+HYt05L7st6ihSXr3nHX+4ULFr30mDjsziZvx0oF5dhlSDB8aMdvG6Ah4Bukg==","shasum":"f807ba8497f8d6218a73e81a977e44ea786a7267","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.35.0.tgz","fileCount":211,"unpackedSize":2264888,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC98uDGzbDcrDHa+gERxUo2vd99ZTehxTC/K8i6snPa8gIhAPvytff2XSOMO2sS0hpdDztQa5OBUFWRdGTWdjljHY/b"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXGFDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtYg//Tqn3xjJgBKYxaSrRpYebAPPddCNZyYaY3ZTMv95k8+pol8uF\r\n95lJzVLA2m0vh8YV1FhAWhQ0SIBKbLrTK51otvueDIwbG71PFd73dTTp0BkB\r\nIxqGoHvT2O0GzV3LuY0ug8C4Kc0BXnGlcCxZz1JNGdK8Gg0goHOZrI0mjDMF\r\nQBEAATXBbia2RS55MNk3wg1cnjpz3xKCeO1yNv46286XCh3EGo19sPQrPn9T\r\nJLPzc9LxArUgUEXRidwSw2MvAlI/jlQs+w4+BQl1cT1np0U6K7pApLPasPR9\r\npvxUfy5CPZDf5QIPccVagR3Q9gFeE0vRIknnQiWFKNmhlMdrp90hhwPBWhfh\r\nV+4crSSLu/kaNNPCSQTE6Xeey0aK6kwJ3075MR1bFbtIiDEdIWcxuxDUhKxU\r\nDIKBD+2usGz9XRGp8t4WWe/5mgc5juqIiYW54EPP0xtu+/QBAeYb1Ocu1dtP\r\nGiOsNd0hX8Jj+JHPxJCE/tn6j2YfCuO+4H+ACnNQvcOp7M1dYRMDfG7YG5Sq\r\ncG4dWyPl6ds0GowlfYTtEujk89qC/LuAz0V8WFkryi9h/DQQpgHAPuAPRsLB\r\n6CQK6929YNJnid5hvdALedeLkj9j87iIQ7QbP5o6DaLthJ2Thu2bMfpVxhXN\r\nYyxb+rDWBhqU2j3CFDHkDTP2uwevw2E9FkA=\r\n=CVTm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.35.0_1650221378746_0.491545044736295"},"_hasShrinkwrap":false},"3.36.0":{"name":"react-query","version":"3.36.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"a325801d95acb69d747eb9bce3ddd6906db57ecc","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.36.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-UwfopsNUVQzyS8IsjxDdTA0vQVEHIQsDsFL8crlEUEBdKFSQ8UlMwcOecTDud1bcUPVEcZGk8wMAQPnTELNqqw==","shasum":"ca93dfbb86bc287ef505985949ca31cac4a7031e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.36.0.tgz","fileCount":211,"unpackedSize":2266329,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCstfVRCUZek7rqCBnnsS/DSJnJOca/OWXbkbqtealhIwIhAIZu3iXBZukibtjOH5YEOxUKN+pZ593eVWNP4He+bdjs"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYU0jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrbaw//ep3WP76PgzeManXBkOkncJvU4nJ8i46OLxaBONK2BQgTWAub\r\nXsMBAFMmDnZ2mq/DnJ9lP9JcqkUpT/sfMr+598NXpDmStHbZKPhhw7HRpnIo\r\nJ5lb9ppX+42x1s9bBj7vZE/tKs216av5GFBrwNxDHrSlLMXqQELtzp0MtEXK\r\n5eATJF5bSFIw4giQ81AN0KVY8I3p9iN5QmUjd06++BfLntnZqHgluJL+npzk\r\nx5s6NkuASRUfttUpL2HkGG5DYtJCrckvMJmuQQxyhtHL2myLkoWqZ+PD1YCS\r\n3CfPhEwFK7pwLT2UkMmnbozsXm4yUBB4sYvjWxBc2P5mDe/eTU4bVqaixVtm\r\nmmv7kOE/39J3iwv9bxO5s30qR0e5bYCVw34MvMYmXg0bjCRGKWbDqUSt2IZr\r\n6Ygjz8zkoe/5tuJdWt7tIdimcVnXW/BPBCF76tF0HMfthnkWizbp9EY0lqAQ\r\n24OGp66y9Rgrj0rBwZoPJousFUtm3S8iNcEafm0TdWx9PcNBmjRTo3PjumyL\r\ndLBnE9H+0Luv5B5DiBI6Oyb98k8xXxnaXkzFy2ltf0FinaBMPC8KWFg0ocH5\r\n+ex816dx0t4Kd8NqawSTE55KHYlGQpUZs62myWamIsUMX+08Mw6m+pMx7yVF\r\nBImEaT46H6irOuhldGkGDSiG0RFCQfjJsCM=\r\n=Bf0J\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.36.0_1650543907597_0.08273962814929203"},"_hasShrinkwrap":false},"3.37.0":{"name":"react-query","version":"3.37.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"fab76e6d0c0a70b32fcc8b459df32426d30aa3c2","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.37.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-VRSAe+Dq0hbQgKilovdTG4hr4+lHUFGo7pQYZQMX/b6yvN81eTgab0MejnnTVlw3vyBVyuokKdCtmfJ0xdubTw==","shasum":"f6a8c82ae61120e8d96197d71f6b1d33126e6540","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.37.0.tgz","fileCount":211,"unpackedSize":2263442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBk0uebIVMOtw5bLKep1A+l09fo9A3qzNn14PjwZJ+hZAiB4vgcMFqTvvYQizt04NxJN8aEPp/IQf1VDSDnNfhNUJg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYYMDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrExA/+LLVLBWjtct92VkDcyTyxY6h3UfB1Ya8qnMlV3qUDkyBH2wtl\r\nGfgrpIfDAcfzB53JqnBC5H53j/o7W8NnPD8VB8Vpt0zk1uRqWaVG74BcpKq3\r\nZfUHm7EwWwJ41ydLE2ZnPdfqK67NyDbpaDarunh5E+dvjdoyy2dRORko9DQ+\r\nToI3Mjf5uzh67MSdm0yIUOUUV7IuMUQO2UBMHGRJrY5ZX2QnOwuwSCN1vrpM\r\nW8uYPfBL73HDTP0vPr4rh/E3ij38RClcBSiTm6GcpIkvt0TU8vtOICiqArFV\r\nmWRHcHIMxIDrmfUuL53pAnOK6QyoFuFbTuxPC32s1Ordw4AsBYHJZtQB3wh7\r\n5h6yBzZa5mTbVmre3aU0rLVX1Kt5JU7z6hTZrdBgJ4zjOF6/6KEmZFJitfoU\r\nmHBK0LJRF919oTm0pg9TV8pmBmZ5tOfo8EjKoHfUEyBtLzNEpz8Z5PcCoHLh\r\np8iphMaqfdbwpb9H4GpAjtjZsfdzil1n5F7YdMLNSKAnY7Qctr+9tEp+mExO\r\nJ/qxT8UVL3bfE8IA0N78XLfzpfhlqvtFfaog0GgHmc72vHz1rx8QAMjHUtut\r\nQWYUyOwQbKFShEtJqoEs2qG0J9zvIt5s0J8wTRCtA+yDiuawq8mg9UzDmf7y\r\nl9h7r1GmrGMOzRtU1TU/Ww2Vx1Kq1G1njuA=\r\n=o2m+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.37.0_1650557698854_0.8707732126698708"},"_hasShrinkwrap":false},"4.0.0-beta.4":{"name":"react-query","version":"4.0.0-beta.4","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"a8ddd9bb4945a6e2b6cf9e2d1739c5d69f7e0143","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.4","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-MlKWI8fLD/N82VIxfafY7Xs3+mKIl+mfXuyF+CpxOJdOrMbvKX1C/QrzyfgCXR3pLlDi94OpUSb0xpq0x7DPPA==","shasum":"ed6132874febd169a0c72db6d38e51c75743aa31","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.4.tgz","fileCount":212,"unpackedSize":2288757,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTr6RC8Fs/ItGFAyX4Nvjw97YVkyqvdh7++f8Mr3diXQIgUAMy+ml/FnxVKEkfbSNXXHCcqm8S5Ge9a+GW27id3A8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYaD/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmouPg//a9CFCRfgxpWRSvNjbDFTfYJASOyElWkDAxMVQ1JLRXBnYwTA\r\nl6CmcB7/xaK9L492mxvAV8++Mz9I7Ly+ccRmmHiKlt3cOj373wUx53aXGPUy\r\n5v0CDibE2y/xVwUTR5p71hM0EO8NK9Fql5px3PtCI1GNZzA/LScu/JBaCv7W\r\nhQvM74GpYwgDcDDsIkfTXksgrlltUBkQxKX4ZtjHWSin8HCR08wsdZ0BzXUK\r\nhnoeW4UFnzeYfBHlRfMNB0hgbLSnoAtkpI7CmFg+4YSevXX6J6A6Hux6E8NE\r\nOlxwMEkp3YcX+mH7rWRoRhEx5laO+pQmO74+l+ltEY+WMYPyOdVPy+KdoS5N\r\n5WTnhT69D2fOQqnu8ZVy2FIZw8iztyTGDCeYLAVO3n2Cta2vqJ0V0umyX3T0\r\n922nGQPQKrTakSAjPBmT/1EcWC4PUAZ/+VkIswFYGd6zIDWxV5dNrk88cdU4\r\nSUREJmXLuzutL5rr1lgI5xbBi6U3JpW3PryxBPhOuBWS9X+aQmJXVrumU2qv\r\nI8UWY018CW9qAhJ7GFypZ7/ocN+0orjUzqwG/WD4EZNJNK6saXVsmLDkuqXY\r\naeAe9El6A4jO5xaIaz3aOrJscvlPhKlBDcOmbP6ndlDV4WU03k6FQ9kd7yZD\r\nGqIA2KgltL55uU4pjXA1CKjLnERocXlbvKI=\r\n=2p06\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.4_1650565375365_0.4253729513020692"},"_hasShrinkwrap":false},"4.0.0-beta.5":{"name":"react-query","version":"4.0.0-beta.5","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/reactjs/index.js","es/reactjs/setBatchUpdatesFn.js","lib/index.js","lib/reactjs/index.js","lib/reactjs/setBatchUpdatesFn.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.5","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-replace":"^3.0.0","@svgr/rollup":"^6.1.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.68.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^2.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-prettier":"^2.2.2","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"9e23e7a4afaafb4ad7985108a8adfb1f93557a37","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.5","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-Po18vTTK3mYnhwi8Uz4iTGxh7/CbNssH0enl/BSHUFaK5QCMMwYxkVInbRFS3Y4bcI62dxaro3GhOU9FtneEyA==","shasum":"549856d39fd9ad2f6e62e2b9f9901ebaf5841e0b","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.5.tgz","fileCount":213,"unpackedSize":2276518,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7tH7RHUFqUBWKK0tUZ5lXuR0sk1XKTc6Ku25LANr98AiBdwIELW+Wtli7lX1u2qdy59xaDG/wLcqck0/IwVb7Oug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYaNOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7kg//TVf0ztPbHwqRsSVgfyIVkmFj6/mxUTUfErQVJQZKLdfKypDx\r\nYbtDfYjZENB/td/nVrFDNJ5QsE5YpFNKljg5iGELX6zfgiBL9HSG597jwPfd\r\n/KTEa4T8taAyC3HKY2cZihqt0lpS74k6MEVsgo9Hn83SfjFnhPIdUCd7AOKS\r\nxZ4xwIYblQHAnUNvRPvFQw68ckWGdHZV+NHmMYARtbE3023wXXxe50QXmjZk\r\neqdoZlocpT56i+c1b5iCST2bmUVE74kxc/p+lOKZqYkfbFXRcC3Sl5ZKtegh\r\nw4Y3LhOrbGYZN3k+FdI7AgNxFRVhKpojhyc71EvSWBx6UtUQvKk1jdJImJ0f\r\n7OutcWIx3Y25PLT4Gxk3hBhZ1zbLZGdju2FFmGH3NyzbBCprX9YS/7AU7GGT\r\nCJ+URzr8KBjl7921rdTraYcdUh7siTPQG6Xkq2boMsOwhkbu8SbpyoV7h8Tu\r\nY+oSpLNIEi22BQgtT0u2v3iP99cz63aObQQodyRXKIp53ZwVDiHaiDRiKKI0\r\nGVGBVjb8x1QTRwGiM8Mjyb2rDBE3nWwGEqrE+nffqeeVlUvIWjtcoLJQODtL\r\nn70Wvk2cU+O0/eQsRnrfX0imjUqvz4sfS46odhsC+ABten1wH7sqXYrs+/fs\r\nIg7UbqJMJJVYP7aKQXCWgfSyu29FY6oPEPg=\r\n=NL0R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.5_1650565965705_0.7174169859087265"},"_hasShrinkwrap":false},"3.38.0":{"name":"react-query","version":"3.38.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"558878c90e90aed66e1cb402751bfe78fcdfa789","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.38.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-VRbCTRrDfC5FsB70+JfZuxFRv9SAvkZ1h36MsN8+QaDN+NWB6s1vJndqpoLQnJqN0COTG2zsInMq0KFdYze6TA==","shasum":"e7f4081e45ba47a4119e548ddcfd0fab18f0580e","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.38.0.tgz","fileCount":211,"unpackedSize":2270682,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8Wv7doHJxNd7guwwKBXxU1be4pnt68TR1XCTAEyUFqQIgERHdkfzf/1j4oo86qpicjhWLpqzcGFZJyHv604LegXk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYl6GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMrA//UDl1ZD+KNG+tAWTUw2DwxHViY2JEbdajrI5ifJQWntORR1c7\r\n9SDXciXx93kVSE1jlji9wPqUyoyez6F3P8vDUYvwD+tgYJiRscM689kekXu1\r\nXmNoVi0o3wJw+CpB0+cmYGJ+x1EEeyC7FM0+7CfeGYqV9Q713FxmFW3vPnxg\r\ncYonRID+JkyAtvahziYi9H5cm2BGcz+USRs+IJ6UcboUUMsCwTBIPs2sR5eO\r\nLer6Yus/P+NM85+IuV57OjjtjwZ/1seYEb8K17FW5Z2sX3XR0SQ4wVWc53xm\r\nLmIZcQD1R39+3sG58PnDTLucYH9Hx7Bj9difB+0uGwqd+bDFdFetw/xx83Qb\r\nFweoI/6ff7fAxyqFhnWeJCATTvAre4d5Bx1wsD/lQkg7guO5K3RB7ww61Cpm\r\ncvdqA0L9d8rKnzMPqZYglCc3SVJBG+Bsvb64Yq08/UcI+SptvLjkhOToCW52\r\nMQcIpKDjqvHQkVOkB2kBKQ26O0Gp8wuwG+V0dfzyfQXiIKJmdgd9SdvRllDv\r\ny8i8mJMBrE2SY8xjo64XqC0qvCFLjMSuzOJ/iRBS5qBjTVqeYjuSi+ovAe/0\r\nlqXhnZD6mEdWV9uSId5ASkpvT+Lo/vYSvgmHU0sqLYKtiKLMftQdpm6pPaPr\r\nbB+kUf92JSfrO4JllXdM3kxza55XJvF57cg=\r\n=4GpE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.38.0_1650613893957_0.2997458373395385"},"_hasShrinkwrap":false},"4.0.0-beta.6":{"name":"react-query","version":"4.0.0-beta.6","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"3fabd4100045061dbc6ae5f6da8e7d275d53f63c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.6","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-XsaBcqieRaD5mCm/tgnmqYfuaievNQU0xsl3Qj815nT2xSiPJpJZfAoeJoGAMpsLcTTNjuhicrbD473fhhPLBw==","shasum":"f4707a04076d5f3a2ed35f60a5dae7f73fd460bb","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.6.tgz","fileCount":223,"unpackedSize":2369894,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGjyEHrEsHNk/xIa6HAV3fGs1wI8Lipe8BxyFjpJ3CrkAiAh4De0oarkvDVQkRdtGz8M01yIQpTrXoyPXPGM/cT5cQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ7S7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrY4A/8CSEhTz2Mr/v3xTGB98r3JNmZrj5ZYnKlZXcrxiX2lMRRQ49W\r\nXVfeKD6Age2QmZxUVTwLO1gxsV1hETAQ5SRePp3Hp3tCo6dqdXDNIZk5ENrv\r\nGS6inIRgdVlQdMQTqBZPb9dePWX2eNqKZh6TfTrVFOU2RAnWQwONpkiQa3EC\r\nX+5IBuU29t6F45gsm24CdV5SqS1+y8TEJpI4qXpEtgga2bjV5a2gBb/qkyZF\r\nDHTuSNDAFt3DatRLPpwfYCc0Q00FI4Qb0+l5H41RThHMAnnqX66OqK1IOn1S\r\nMPojQJRUtNiguVfPho2KqSGmTn6tnpDo0aoJazg5azugSDlTEwv80SLv2lw8\r\nvl2ToSg2lObJrToxMMrxR4b+IvFc83eB6zE7ZWYco3IlNovtyS6XOduoOuVk\r\n3UiTIzgqmDoMNHMbYOR9LVW5hpmH6ygVO7FAaChqyLikWU7s7E9n4kDq8Rux\r\nsH0brEnm0aRaKo3NCKzDjvJNFFXneTKDqv0ZUBtH+9pZchVIDdwX2qe3N7ST\r\nndDeYp+EVUrq72z8qCgDDD4YOLavi28G28Ka3sx+8dL3ImYO2/PkzVq1h4TN\r\nyn9qabrF9lgHJ+4QpshdPXuFmgiAEDltsobRiF3yt51zZZm0rnsUPn6+i0nN\r\nzOJVGyp/w1W2oxVl627fiJhvAy4b5TqSeAQ=\r\n=Cuv/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.6_1650963642869_0.0005621055364619654"},"_hasShrinkwrap":false},"4.0.0-beta.7":{"name":"react-query","version":"4.0.0-beta.7","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"fdbc002006d7d8c3e236da71cb0c23cf394c1835","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.7","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-hovLEuiOfEPnQAJ3yfIK9qoW1fFdf7BQ9Wn7ALPueIO1McBhCMqtwEWHxL6DSKk8bgeDjMFBzDnZmQPXCiq7VA==","shasum":"6baa776c828263a79f82b76726cf56684e17b92f","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.7.tgz","fileCount":223,"unpackedSize":2370122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2O+d/b1Zthh9k5CKdr+LzlMVW5XZISHT8Sk6mKzmd1AiA+N+8BU1BNEIVKMzXiCCogvVXY53pzub/OClIjkzFZMQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaAuyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2xw/7Bhk5qjqgiSyMFw6ImspGbFb2UlN8kcVyAKzfvh8f+76jWAfW\r\nTfcs6RXhGcZWAX2QJyyoZ/nvzbGSRm+IZKlvcaps0Fzn4cUDv4dLNC3DTD8u\r\naAL2aUCHRB/ODLJABOWmjo4GN1xiP2JePE5aeNx9MeCYYT89chw0FEnXxnOz\r\nmf8PDQNZWmKZ4wU8r8dVAcQ4OXathkxn3H+M4BUJB64nxp4HhBQt2v1/oJ+9\r\nfBGsLbefbGau4/iHw3z2cewCY/fteEcbIBgArlybeIiWTuN0PWjJy3F1dfcz\r\nBDEBgTXUlMaYZBxvPW4zkygzBdxKqXsXEfQ8a/WtHZFrFzy24CtZBSkf9+25\r\nvP73LpxKs/MplFwUsZe22XBWfcrt0u4fCQ1+I6zGG85oohZySmye792ikW1R\r\n2w1iJZwTROnRTvGneioVWYfhlMif43sZoyJ3x3JkL1xlYmjVnbY2vYqMbz3G\r\niCvLXffwGs7RnnWH0OAOBZgOnsabKY89Qs2BXzuLY0mDMSnrfEAVvBbWa0H/\r\n/DX4NCDwpIOypChf1nW/Bm5FSqEOTosPI5/63y/6VD8KoVCIZeM5AvT1c0ID\r\nW+xbCFDUkoVm9VRyZCT61qvnMsNDnWKuPZBM5XwSazm4GnKNyRh6+HPhXrjN\r\nmbMYkJ2wWOwbMFH7FAJ9jM/AWcUA4yU4TLA=\r\n=6Xeu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.7_1650985906337_0.17047112388647334"},"_hasShrinkwrap":false},"3.38.1":{"name":"react-query","version":"3.38.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"09a375badc27f42c1eb4263e1e01570f267fb7c1","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.38.1","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-CM9hsz6oib17hsBguGaMJr+a0swMzou2gvNHHjAusnXvkfTx6CTzx0Iwuplox1jI2j3WiY91BGrcIN6bp1n1Iw==","shasum":"4892304dae7eca7fa0ab5c8ae3e9748f0fca2df9","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.38.1.tgz","fileCount":211,"unpackedSize":2268170,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTeSQD+gHSZrP06scR2wqtg6YDCFPhMEZtCjhnFUiLPQIgd3b4kaBhSG0+Sr1FqQPjYwFFD6loQl8nRoVGaNOLxx4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibvIBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmol0BAAi2RD3EgBqQWrVqkDQqIFGMtvsaEDx10OO4fL5gQHQE0M87J7\r\n+6e550hPmh5jNK2BKC8ya5xoyuZXFmxxz41LES1iaxO7hUG8Zx4TWnj9M3/A\r\nPpgM3q8nqAr2wvDJsb9p45jnwF3xR35HP79TngvKA1chk7nSiWQI0bjsA0Nq\r\n18nIyJhEEPIh9mhux5+zUDhNWSkPOXzG3TMKK+3Aj2myi4MXU4PjX0gaCIX/\r\nKU63J2iG+speGLwHBiY9O5aPrp8/bnFhUjicTFRm+NV7wESO/9ACHug7xi82\r\nYgggDzTNPlcVbrzYeIVaCKzDojIGoHBAj6tymoBmD9KCTEnr9XQZRxVD3iAk\r\nXkUuKgdKv2Fmz/SOVPVTTsyeJfJHsYRatzZnBIhM04NgJ3rteN7kN16lpZne\r\nJ8b93e0kD75JWafv5aB4ckLYTEil6WuEDgbylyD+Jhn5h+IPXZW41MMmESgt\r\nnvmmBWblbcGCmnFjrEsCawJfU1YmTZ1mGOSn5TkDc8Q+42/YfKR1uliy60Qh\r\nJXCferxczIUfQoF8Xefv9mAZObr6c11MVAbX6NI760fhfgeKpCi/5yKRVNC1\r\nVbHWwiisoNIf9SSa4F9jT8KTUgpTUxHLwPwnFcKeVmGaIqK52Xk3nYhpjdv9\r\naF3LHCdwiLl5nRNubm8UcDmM3yINN9US3Bk=\r\n=0onm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.38.1_1651438080943_0.7467932705115872"},"_hasShrinkwrap":false},"4.0.0-beta.8":{"name":"react-query","version":"4.0.0-beta.8","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"6379654910ef1e048c9eb30735da53013318a0b6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.8","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-PfVemXZ6iHI4xRqCogG3qdvD536YfCaT479jY0v4RZ/7LVbtC50X9QuerGxxJnNZmbdD1dAvIlmOPD5TfX30Mw==","shasum":"0bcb2a72e472ee6969a646614e9f2a33adbbbdaf","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.8.tgz","fileCount":223,"unpackedSize":2369757,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdCFoRdVn0JS/d2++Yxk8g0wxGa09iTzLR9TZ8U9kGkAiBZLmEY7GnQcaE1DplOr0fCeDtOFDHMUuXW4m8BliwY8Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJidqy6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBdg/9E0GR/i0LmY95ssf/Tyw0fXiuMmCuipqQ5nJ5SqEVQtWlWj+F\r\nkeNe9Ov8OAmKD+yaoxhdpR1G+coO8FB7p2sKN1FKQRRjSCccvH6M+LbDfl6r\r\nXwtNiSzVaTu1kL1AhqfEPKGrkbsIGitkhSkJlPCASiNQoqF7KrPZ3Y4NjZ/y\r\nU5oemqLtrzCe77FN3zyuEA95p5e3vOniZPWsoo3MGG8E1ay8iLk3pzO6nFtn\r\n+R3mH3vBT9j27SCl7uhcORCfbauRQEbLlLZ3XaMGYuL/Cs3HID6mQ6Hqm11q\r\nybeiQnaiGm4VZQQ4Vmx+8RuP1TGF759sBj3n9D5RvRks/XfaPSx6yQXyOhpF\r\nNao445dBHTpAJelQqijn+j6ZrKVGKah+WD7p2UbqgdwgXE1ll0wO04AyzqVQ\r\nrjGsGot5LJjTTzYh9kFuCOvfI/N6HisW1aw4TrqFMkentSQhsVJXd+PlCTbe\r\nLAqWq2dRBCDjuv0xOCxWAmssOAkkeFhoTeTJscIDdQ1unyaRpgds7LOfBorc\r\nrFEgCWlawDE9YnkXjpcv+b9axDWmFycvhGLUxGw2r4Ht60JQM22SW1hh6A5g\r\nBjBhhqRbCZ8l3TT7lPYiAB9q5mYWr8QM7MC8B+b4veW9u9VqXGOlQa1f/tpY\r\neiDimwOuoyBQdah8Z92EZgad3Fqf/K6fOP4=\r\n=/5Ea\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.8_1651944634461_0.7582476601555899"},"_hasShrinkwrap":false},"3.39.0":{"name":"react-query","version":"3.39.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"5848fab8a560efcf66ef0062c207c3004bccad83","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.39.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-Od0IkSuS79WJOhzWBx/ys0x13+7wFqgnn64vBqqAAnZ9whocVhl/y1padD5uuZ6EIkXbFbInax0qvY7zGM0thA==","shasum":"0caca7b0da98e65008bbcd4df0d25618c2100050","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.39.0.tgz","fileCount":211,"unpackedSize":2270995,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5Ly4l4vVw6zYQTLXsKD04A4iCbS4eKs/hBic/rf6/4gIgfgGvaCIA40XzTY47HNu+XhuWKn25KneTHieuFtAKym0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJid3gkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpfzhAAlGGSfUtauaxFR9jTp3l0Id+N0G+CtiWyREYrwlqVgx5DlccG\r\n+miQ83wO4tQ4xGlQC30ghhZmPVnNH/NiZeh7sZ9b5rrPfifVcToB2+RzZNhq\r\nihAA2+XSjPkOIf3kKuZqvfYNfIxQvnPDwX8inaY4MChzkw77d+W3103R1u5Q\r\nwx6DFuB/0tdpZ7lySTzUeQjkxmVutszc3O0WsS5wrF6Qy8S7DKvc+x4wnb5C\r\nnIweeoft5/ac14MTd80rvyLKlxm0ni5IAG1UYupj4s0oCYn+R+UipXafZA8W\r\ne+yCnaFD05jzRgZ0/p2DCiYqFxXVuPk5nVvl/OxrxQLJxzcQ1Kclf/OwkptZ\r\nZR+CBqH+mPAKCK1y5B+VjOi+ac28jMgdlclo2Je1D/MUHreRybl3y250TXLL\r\nMlOnXMA7FbNrTVkc3hL+c72ZNyi2zCt+nPIVEgkd+HsUPYQxkzJ6ZRoW79aX\r\nXHTnfVqtGpsRxVunIKoVB/9nfABY5Wvn4IoM6NOdn0elTwadPBnS9kGdW1Qb\r\nYwflEpSgOaG44h6x1NQzTT0t9Rh6AJEjoh6RkHgDc8hR64vuPCgufj3nyvKy\r\npAdQJrQFRBE+O9S6tWsW51AHFPPJlWLCyOr89T4ELiyksC65AVp8IxesgVzi\r\nlT5K8zn7pb8uxMdRJDN3+MKSHvSFKM1Smfs=\r\n=yXQ/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.39.0_1651996708241_0.09284853263777504"},"_hasShrinkwrap":false},"4.0.0-beta.9":{"name":"react-query","version":"4.0.0-beta.9","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"5f80b0906b5b342782af222f75bbf78d6d267151","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.9","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-RRred9TzbWcsaJBwuHmsuCLYhcytObPmM5mFktLEm3I0s6PJjE3vh8WA7ZYklpfR1My3ffZyLn6gCMWpvEgSag==","shasum":"1de58a717287f7e5e03abbe2ea155c1d7e9a9cae","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.9.tgz","fileCount":223,"unpackedSize":2370776,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmcd2kviVleNiizKQ2uCLP0tlrVeIxkkfU/iQFhdolFAIhAIJ43LppITSzP2d8wx1DS6PDNCW1QtZk0r8ZqY6g8kH3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJid3rdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZyA//cXeij8kueX5JWUfoQSsaRx3kw7Fc9+tunJJIoiVBnKR5EGzg\r\nqcJIZIUEFOFqkJCGVNwvGtQIxaUEeO83DOqrp4z9SV3t0k5LJ5b5SOBQjZuQ\r\nHPoZVRTNwqpKnSagIWQjMhb85JMts6sz6Q5usd5PZQaijxtVnVcRs8a12L/V\r\njBPdwbr67277LZMerDw8WKPoNZ6enTlxnQ5bchz7dvopqdpkvr3rir6cRgS+\r\nwKbYeednRCskMiBuSPFiBfMmfJ9RDwVL0iCaFXtgrRC6H6CyBbX+IbIWClOP\r\nQ3l/JaS79+hyxMIYnPPmaAy0HqGYeJiBYzOYSaes96cGHfvxPnVHMuPLuKVC\r\nOViAY/Fh49chbRYoQTuaeYdNXuds7BARoAYBwl5/Q4k0waNoIw9KwcZ/EJNH\r\nkdkS7wnC7d5YhGREft65KWrXUQ79ooXf87AeSJdhmV9hA4qSf+q0nPT3tsNl\r\nWo0rwkhVQmyc97yKdUUJGLn4XNA7suBtfDSqckxEMEr64sbD6lh3BTLpqUHU\r\n3ppPmrJb2l28Y+VoZLqMwMRXwCaWnILhcE9VrUdQQH2WAlSX4/6Rdx/y+p10\r\nsZLImtuT0Ps5D4bIkL41owRpUgIPWT32f7rGii3pmdRt1wz6PGa0O6K5beg2\r\nYwxA8pYuj9wR+bm70xCPA7ZxblCFuPPjFqg=\r\n=29kQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.9_1651997405054_0.7116897548190169"},"_hasShrinkwrap":false},"4.0.0-beta.10":{"name":"react-query","version":"4.0.0-beta.10","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"e01a7bb7e76e85115d45689f555ad2e8bf8b015c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.10","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-SfhgwYAxBpomAH9ywetMCm7yLfT1EZ9KGZF3TJZE4nmCcQqOfjMUZAjpxbjoHdUeOD9AkbX/4bPdV+EG83iskA==","shasum":"a832b63996ae3e23b724b0abde627b0cb3441f7f","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.10.tgz","fileCount":228,"unpackedSize":2371339,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaByOU22DxZuJtxulGiA2FmiNciQYEQxx7scSPJiHyyAiA/ze5r6u1te1MlFXPmgCB50PYeooSPycDpPCUB2hgFWg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifLroACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmomwg//YW74y6bLdNOdmlKyOVIKTUtMPs3YLUySDVlYrBCu7XL1NqBS\r\nvQvx/5HVc4pC+Zm17MKLURT1Zp9EMgL5lITiUJsJRhiE4xDEOYNmdTPyNXi4\r\noAdNKRDjbHjNqwuP5iNN7/MRmiVxF3fjP8iVtp+VaYZbk38xRNyEvOh1bIxw\r\nQu+eP4v427xL8DW5ruiHpV+7bb+CANPK0aWusAiuioTJRcTIEQhNKkYHxIJU\r\n4KRJ2zrDzQp1CrGEh9pJ9Mr1QFXDdZkNf7JMsA3bupvANofSml4j+w/RAoe3\r\naJIznk9WNd9DoaGDoBWEuIUiewW3p8FDGB/OVYwTQbu+i/sEmhUl9wpmgMGr\r\ngDCQiS8jFG4+I6ZGUJ3dIRDPyFVbVRavvwrE0M4iVz21LnBLDCm6bCz1lkHD\r\n4ab/Tbu28GvXejQV57g/ZBOKJrSO7I06B9UNFVM2QO2m5VaS3gx3OxWRAef2\r\nLnsbGtEjKzRW3VH79/bT0SEg1N9Ktvn7QY0c5tjlgcG062DZyFTRgMgNcU+k\r\n+AqotCCLNodCl34LBHoOW+OVZp8Eg9pv74Lj6uDnJcPCUevgZFsZ/XKrgX3w\r\n0EUSeC3BIebvJ/ZaSJxoanH7ggOkE+pyLXLDDzBSKr1C4H6NAmvNiElxmo6n\r\ncfgxh0lvRm4VgN6V4nWzw6AJccIHchs3H+U=\r\n=UmPM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.10_1652341479634_0.45141446405858354"},"_hasShrinkwrap":false},"4.0.0-beta.11":{"name":"react-query","version":"4.0.0-beta.11","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.0.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"7d3f7a2dc5a059bb2e66317eede27893210ab610","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.11","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-+FYwBYzp24xU4iJsrzyAiJ14fS59Ek9BVgQ/KjM2gHDvmdquuiin6rHVbCd+OHTfhhu/9i1sEQ75oG9lHwSwtg==","shasum":"77c591cd2bb7f789d9cd7c8d8b67f06e294696d6","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.11.tgz","fileCount":228,"unpackedSize":2370942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDsLOYu88HOi7L8EKEFlesPB/Vr6E8Ii2S5cwTCz4WKrAiEArraLg2avtrvEbJSlLVG4qtMdZXKXqBQqxTxJcd/PCe4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJif1l/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhGA//RLc4Y+cmjRtOuhO/D/r4P8LHKJi2+gO9E30TZBngVX0dgEGP\r\nvuFaKUUQiJWbP1RD4ZSDbftrcyMMKxM5yzEbJ9eAUQqnoeEXcRcMtYWZYn3i\r\nLxhfRt0IXWt8Iqbbe3B+weeLQC104/+o+JKdylao46N2xfbLL2IG0GS2UV9u\r\nHb1SDSx4deqCNa1feZUclP9L9Cih/ePTbkatoQhNuNetgjKri5fe/xzk3KRb\r\ng7jS6zAFg4WSaNPhQ4Oc9mjw30CzcOgU2TPnJgFbUl0doqYUp6d1p9EgtKUE\r\nzTMGnpEZOpDOuhRwBwVA9Kfh9jzOdLbDbcGGp1Rh+8ffXyU+Edu12KKwkuRL\r\nmujiDBYCk8DqPSzVGaAPPDVoT4ESmzk9UNz/oBQuiGZ/a5RZlosBBDdEIzDW\r\n/M291ccGc5ioyCKzjB9POFT3pycwPl8u1A4lLcTS/DNHRrQkJntwQdg603AI\r\nrTfic7Ad/5F/QqB+mdMOjKrzfH/LS7R3X6oFPor4QtFKj77rupvWfDF2ahBh\r\nYupolSPoAmpQUGdULXCw/tsckVFVOWmmVvlUMGdqOTQaK/K6/DvwbZjnnoz0\r\nLzSo6N3TxIb5FI6EUaZv6OisJyYgG2RMlRcHQ2mPANdrFuWkcYRN5UgHAQND\r\n3n0x8AQKfxC+nj/i36ncp6z+V/9mpifKUjc=\r\n=WoBt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.11_1652513151595_0.5065516222295869"},"_hasShrinkwrap":false},"4.0.0-beta.12":{"name":"react-query","version":"4.0.0-beta.12","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","type-fest":"^0.21.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"35a40ec29e96ec5233ff919344657160a078a08a","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.12","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-PAeGKj/SlIvxShJVBbyKojUYUK78yK/W9nS9Uw78e40wjhuHiFMqbQWjtAQTBCbliZ5p1VkSHCAtpEVrr5GOvQ==","shasum":"479299c6691e55294e6481ee49131ac6aadf0a0e","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.12.tgz","fileCount":228,"unpackedSize":2370942,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFEgXnYptermlOiurYu/SguiHakuOz8tNgHZPF15+VeBAiBrbogm9+5h3Ib9pf7ywFvrMf3Urp2MAoAHMV7XoGo8+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigIHrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmokbg//cSIKfvTwk6LxABn5A8mjOBq60m1Aj3LgdSFplVZw1OvVpqxK\r\nw3tO65ORB8uC10/vGKiX6PUEQnhl5dLKtxJgG7FfVk2LHFV42HH91UxT3Y4/\r\nESAK4Ub8irtcvgYY4WioBH9MHJnombQYxy3nOlHzNirCybwaKLy4SzrXcxn8\r\nh/42brw1nRsdaGFXKOzwlh6dYcRyoW8x97BWrl9Dc+q6gnyUVsm5EmDey13c\r\nuzIuBg6mIu9bXvUFB5U38BJA6XFatYRx0zzJwLk3Wz4Jc2uMQU5qdQuR40rh\r\n5nmvzO3HAdUTpfNym1rO3oUEyNKsKpUhF9fN6VnY9DwiYvw3rLJg6Ze5M9vS\r\n2cxrlZ+ye1UBSmKvmh8Y6F8A0/SxkbwotDN3jbZUD2Ebrg0B8CH1h9wjpYbM\r\nIYeJ9NBWgQtAV7ab/j9iJw19G5a2idA/VZPCqPRY6DYxdz/Lh81D7AhN/YEj\r\ntjcWgfeP3Fxtfi6kxFWT9SzSjXR6uQT5tOXrIvJdFy72zOpxhx4I8MNl4QN9\r\nZ6ArHp4KiOY+shT2uqUOkZWhzrfQ1iH+agSfq7AJjkXtuqQUmYSBS1zwFs19\r\nW8ZONi9PhzJyBg3NfnI36irgALV4BHDFkVlhzcvKgka1NnILUIdwYp3PqNuz\r\nhnCIrP6ViJVahTg/2bmbgqqIDRIk2OgqSYc=\r\n=tL92\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.12_1652589035319_0.4024780904263139"},"_hasShrinkwrap":false},"4.0.0-beta.13":{"name":"react-query","version":"4.0.0-beta.13","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"34afdde95fa276b89bec01c1b95041834c672390","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.13","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-CnDuiD4IWGh2nesnAqMlUbXhcw7ZSZZ5JwfQyv3a8OIAs7NoHvtNWlIH88kcOWDZjC7eGALrjnwsWpCK45jjtw==","shasum":"07fc1610d87db1a174ad5723b4ca4b3e238dc3db","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.13.tgz","fileCount":231,"unpackedSize":2399674,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDop841esXsqNlT2m8agyh/9HyTMmx3H1fv40p8gZmy7QIgHZI05nTjlQymCQWZPvOKtEEJgLTjlSiGREYQ00O6qUo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiLLbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6MA/9EttY9bBUbTac1jsg9baiG3pmCs4OphCjL7NE6Je7XuXa9Sa/\r\nc8emfpm0W6CyA3++yUHdq5tV7p6skA/Cc+TDhDUIiml7uJRaHasXuhxXNtMa\r\nm4Viu2TyidQ/wnO1AgTF8qoKKSMGHRRT9nzfGKb0TS4/j3jhEM0yjp3mS6ny\r\nExtK1ygP8+L1FRY6wYGVq5H3RdTjLTXVxGRr6cihGYm5lHV8uGa2D+bW7MaH\r\nlFk2+Mzk7y1cEqWvn1/GLLyjsAuqsw6kGdXRAjpm0gs+JZ+I5CgITD6oBRu3\r\nl89UJUyY5eZua36i5QaFbYXnJf0Z94gO3I60ecf2xVCYdei8HWVCRt1Pv+vx\r\n9mCLMqk4LlQz+oA8jHzxwkKMXVIwRYd51D9LLbiTdJb5Ry/sqZlldOSjrnV3\r\nvpShjmTGwBGdApqBRQxBPwDnUfbuJ/cBV59qSSwD+1/dtCc0vxAKYDhWYV9l\r\nn7+F2cWseH4RCq5PnjNjUL3JUZaS+kEtVmJcbe6hbn0Pa/6IRMZBygXjkVSv\r\nBPbNmluCekE7BYqUqPrP4uWJDSxm/nioSSGGJwyhhwlarkx63/i1RyOfe32k\r\nNLtU2BetrbhEmey5ty8Jmtu9kZaU/Z0I0qsMwwMeUAfeLjk3FBEFZYg5Xqpw\r\n6bWbc8R35Dlu8ja/cMRSF/eg+psLQojWSkM=\r\n=2x6N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.13_1653125851598_0.7634517928440641"},"_hasShrinkwrap":false},"4.0.0-beta.14":{"name":"react-query","version":"4.0.0-beta.14","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"40b921a584210cfd4c1562f397ed7ad4e9ea4470","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.14","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-hHtORS+MxLw4b2aqY1wW73YfHsGxXD90hDo68h8JK1Rxeo6BjGoCYYh+wDDN5vdz/SJUj7fN7TA5zISgEZHx8g==","shasum":"c6432f57081aba6c54773f277ca0d4190fb6ff6b","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.14.tgz","fileCount":231,"unpackedSize":2402331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBFQ9Je2tH+Xbh567u0kUzzCKVkMNGmoFO01x4IW76yFAiEA40Zfc4knW6OkhOB/DBxDJayQitXVi/mmY45ZlWtZCA8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijej7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0AhAAg5/H5FSvU1e1fQKL3JmsXQlTmPpl9Z14+OIVhWO1YwgY/tm8\r\n7U7dwe6qQxv1X2dAn+H97ZOdEG85XnfUmcWCOExivTFYPpYdVRDDUV1DWVfP\r\n+BMd78aqjz3oXgu0TRklYNd+6F0dZbn4SJbE0Y16VCDObr1fD7T4A85JT0HM\r\nVLLCb1QJvC2NSEkKy0I1kswQABf+bUVgFb8om6H3qvhJ/W2l4TD9rIgyN364\r\nb3YgX4BUR3RDEORGlsQJBhP3RkaPq9VQyS1m3dp8yrmLEA7hJLSSOYxmNcB5\r\ns7TZSKKYNsds6d+CqgCc+Dz0X7nqMh8qEnQkzHmuuOzgOrtopE+N7rhIQUWd\r\nxJl3TWNRqHcNA7C7yTOkzUy6BeGPmR32zfTkPCaJwbFjE2hXTMUsDWVNg1w1\r\nZVpJOhYmo7PVMWiMdXplO+eA2xVPytg+lDdMDRBl8f29J0F3HesVoyY7R0lC\r\nJ3LAr1ZYyfJvuBwIcN6ujq0XhYW6vJ+PC0EalbWSulA5fXBMwjBbjsLhGwaX\r\nZ1EcZcLSU+tp2XIDfBeH96MMz1JEL+mCGF4dN4YVqMb+3zUkUjD1O+gM/QW7\r\n6emiDdAqt9adbgevJ1r8r0zhqgvNRRtb+beI91INgNendmGsKFZsNG18j11d\r\naUKtwFRh7UvH6MXduRpZOR6gdhKQHVEBZpk=\r\n=8jlT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.14_1653467387104_0.9560942315666727"},"_hasShrinkwrap":false},"4.0.0-beta.15":{"name":"react-query","version":"4.0.0-beta.15","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"270efe6283ca7a6d0397ca048ea1869c3fa5e743","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.15","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Muxedh0VdwL3QitW2ZO71r+w9uIfWgTdiycD59FQ7nHmWq0Hrooo2oBDb14mT3+GW9sTod5oAuWYP7v8VZY66Q==","shasum":"c598923bc464597bdcec1dd3845d05a13a07aa22","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.15.tgz","fileCount":231,"unpackedSize":2404977,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHTQpmcUMLx9hrdEJNSYI64ldknFY2L09j0mQeHV1rUNAiEA7GX1d7fqn5TmFJLLjG4fOtlTdKfAO5WPIhjMGwfj+/8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijlTaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwIQ/+Kgje9doZ2pQRoVbKlEiOJIqPndSQt2q/edZhmyQOx7IhuJIo\r\nD/O1e7tRxRqPIwtp8xwZ0JxEWTUlspKceNkucCynYcFaKe+Ya4trhlXYrwQ4\r\nBJT2MivjaQPK9cyhqqDMGQoT4G1iFz15kwEFGYjKcaMefP0Ajg6qnK4W98kN\r\nJrRqVKhKHNlTbveXDvbdWABFHyMMDIuG4QXB2Z/MnnG45zXzG08OQBndxJkj\r\ngTtmAuvLADvPfH+5vKU8bqESK9Py5vrux+gWswpZWduNInzzGA2BdLHI44LA\r\n2V+3wTCAZPWza+5GcvlZ5Bb/UEIuQnGem5kW4z111+Qns6GoQ/Sq/zjhg3RZ\r\npwBOnJmwJhhr6WFotBvB1lblWMZ8VktB7/XmGyYUqn64VVTXH/dcMAw0sViA\r\nhHL74ysKdVv/UVYBUjiLoCvTr1a4hsLHnKTRKLVIPOFUQ81PaUwWgrEZ3wpT\r\nXght4/wlhuSoTiSmMPWJELc0nuGDFWGYJ8LBro3hFco0Dqo2IGC4/EBXs0e+\r\nLCd/UcLEZyis/Lb3bk0yJGV0FdjV0WBYGDwlWTajE+1eU/JZ7mVRV+6jdlcl\r\nnW/Y8PkzxEpQ4DvEEiGKlpFn6Y70gMaIg4lDdoGR+HIxsEpMzJEHGOPR2zOV\r\nq0IstCM5IdubUyjUVZCx47X01DGg0YohuC4=\r\n=yywt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.15_1653495002127_0.5008013823151054"},"_hasShrinkwrap":false},"3.39.1":{"name":"react-query","version":"3.39.1","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"9f6c992feecb4694758f8767063d8ad89d842c3c","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.39.1","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-qYKT1bavdDiQZbngWZyPotlBVzcBjDYEJg5RQLBa++5Ix5jjfbEYJmHSZRZD+USVHUSvl/ey9Hu+QfF1QAK80A==","shasum":"3876c0fdac7a3b5a84e195534e5fa8fbdd628847","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.39.1.tgz","fileCount":211,"unpackedSize":2271003,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnQlw/4RVwnzFYsscedNjh/CKQxyb6v9oiAsX0pOX0DQIhAP+OiHBj1dII7gEJIQBZWoCacn0/Y2QwBzneXvaY7btV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik7i5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgVA/9EpBxjwQUe3/vjhFjEjG6d2nF9whQsd1UC5zTbP5gIPk/QAVy\r\nuhu2ZoE0eUOezY1JO4ufMuAK2fHBAsGzdXonoWMdVYkaAqFR1PvCCaTLUM8+\r\nakGSQMHpRohDsdFmLywTgLSSTkr9WidUM98FC8/oOCPCTLKRM47pIe/Xf3gl\r\nNZtsvSaFIjVIGWYve6D0eTakpMceSNn/HaVv4viBkYLrwrrnxkyV2+DV/pgn\r\nB42aT3m0k21ogQhB/4lvXtMuQzA/SAmvaxtRycO3PVQpCC/3T94+7YkkY9uO\r\nO6XanMncRuKZW7T9snIkDcOFfwoNlT56LuhEOeyzHgSYrYecTjFBBaujGX0q\r\nkU9phUvX84OXs1xkETu6p/TGRdlck5cZfWzzIYTAxQUR/HQ0csTMJNU9GduB\r\nm6R64lM1I6o9HdWXORSDB0466gv0IVgkCMRAnhOQIsOBmyaxkmNuVUnMSdNP\r\nvmfp305P3njyKWnmD4R5h26oa2m4IM8+NaHVy1T2z1ZFay0jiFrctqMrDbJy\r\neqKFdyysEgBSjit95BlhylrJp7/lH8z+e+UULRdYYG5lbngNE0Tatrry35XG\r\nFAQSXX8zMS0WHPRrhbCC+SXoBLFy3sUCF6RTqB9tnswEn910w8Y9aNOZleP6\r\niB63iLbhUJsiGMmR6WXemL4iAEAqjMrkWlM=\r\n=hWK3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.39.1_1653848249406_0.06714244053278207"},"_hasShrinkwrap":false},"4.0.0-beta.16":{"name":"react-query","version":"4.0.0-beta.16","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"068b9740d27532c47323bac228c928df66c605e6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.16","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-P87SpRu3IHZmhkzfTuF5mbzUd2eUs+avhbal7KC7TE4Y218MFFMzE1aUKNIJm2ZYZ4C4OTQHGu0Tnr9xMazCCw==","shasum":"4fb92851cca4366d5ba8b96d6bef0ae036a67165","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.16.tgz","fileCount":231,"unpackedSize":2407611,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID61FX96fFPLRg/5oxUE9VJ/jYU674/N+wwZa6SB184QAiEAtj1EN42fyiX4BQ3C14fE+6+28NaPQuUwdUoms5KAljs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik7lmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvxA//T2cDp4L/6fuocVFUtRzOjmmeQbqnFcT9YWvWdufKDpSDYmBM\r\nfKKuElpfhFHS6mgHq+nwCndOYAYz1Co8pBLU3jJgBh4meC4eCGPvondOQOWX\r\nnT4aXToOEcVcHIPwlX/+EU3S8piHRSjIJOxWyqZnWPXhgm6ktiuKrZUStf+1\r\nqFLFhclPaThdR6s+wGN5UstSuZizPZBNGqIyX7XVCI2MOmi8z5k3X4HzG6at\r\nh94rdFOOX1PCVP3PyCtvoYRiHzAjkUO+g5LyNbwmT1UkWwH9s9D8AH95N+hP\r\niMvG3CtcjY+GCWZvqMgMWCALP78aSit+kpTrCeJQQX0hRedKdygSsHDCYjM2\r\ntSoEkkUybbbAah2gEyzeXrMbh74dY+GSEPgZrj4SUORf9CwbYI7YfYD9b9n1\r\nGCsdr+7GxYiGo2zIWuXkmGzzgP/3DL/qmmi4qtxBkX6cQ0cFUa1BlIMuxKiD\r\nHYsdxY/vb8jCCKyTnx6J9vk2t/McjDtBnkfkAw0nDzxLmpGYZ10HzJqtjK8p\r\nMe8kzsDH6cYJ76SnzD5+Ib9+YTVPp0QkTufBBxNmyU57g64v8qCvKTFg0G+6\r\n0tZC+x/G3kjX93khCKYn/tU83ZRxi98e5eBB3x9YFNtfe2iWxWwyPuNAc22l\r\n+X0kGKWK9h4oae75sNxESxZcnslxo1SPV0Y=\r\n=E14t\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.16_1653848421841_0.151650950960871"},"_hasShrinkwrap":false},"4.0.0-beta.17":{"name":"react-query","version":"4.0.0-beta.17","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"4a43068b279619237cfce7e75c827f990c50cb6d","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.17","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-0pYR6QOaSMzC+rvre30DMtBlKfEPJw0FKKpmTybtGGYZ1QAG8t+zWltGgTC5fxpk2qoMxEwL/YsO5hvFy+TrTg==","shasum":"42b8b52d66c6a41a720ec5efd791ff559237eaaa","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.17.tgz","fileCount":231,"unpackedSize":2408861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyflFF/EJZQ533SAEtK08MizkWWUcth0Fe/3eKuNeO+wIhAJEmfewTab8wfDhLL/B6/IxOH3lmqXxeIfMlNijHBirW"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilGbtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSqxAAgwT7ddiZYtJAF3+1BzAVir8ZT8Rnzs6wLQ8JGsMTQ5vYFsXV\r\nbYvfqu1VcHrU72hKj13239Hqk56F3ggHgVJTG0hEydeUo2yUXj+anEIqFySA\r\ngVhA2UODEmYZ8sGTEMTXcH4vWtQ6vW0KzSvmmfsRcKn3VrUUO3ghdT1hv6Qr\r\nFriO11Q68V8FKaSXcbk6mi6+ClNVfH0OwLumL7VMz0VruvFpSvl+MNVJmXhG\r\noSIxHUaKBSDl0w/GEDfPyVkc26hrulqk5YYjH+4KxGyq0886y/CUbvU1zn9N\r\nYhzQGLqseaLjU4K0Z/TQbERn+UNj5toEzWuOOd2Pd7V1GrreHLT8cOtcZr0u\r\nfKjI6P8PPsh5qPJcQQUyV2gU9r7x7r4HJy/20vMRCNVvYGjtzW1OljYdc+YL\r\nZwnMorWyX/1rAdE+6oBEEOhajWqMtErZMeAPAh8/HLtg+hB4p6D2JtJKrpUo\r\nHEgyvr4PieIuU0WHe8hRtii7H3h+6DosSSJ/hGleJIPtzNDmYgCQsofUmQp0\r\nBc5gcAlOhvGteFlkMJJYp+y5oCXT/c3s33zCj8VKC5Lj6kdTlQRKaGFKyJ1N\r\nVHFBaER03bCg+uVXjeZNsGCjmJqKqN9Iby+amYWweWCllquudSGQmpDOrtDf\r\nfFh7MnWjlEOvfzZcjZJmynT0FO38IEcYYDE=\r\n=uEU2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.17_1653892845261_0.6880925073752622"},"_hasShrinkwrap":false},"4.0.0-beta.18":{"name":"react-query","version":"4.0.0-beta.18","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"0c04e7d0fe14ba175b1611a6c6cc531cdb100337","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.18","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-mObxiqcvGcB0ypBtxS2ZDVKatwZa995x6QEq3DgkzEzcaLYYmIecKWn0t8Bu3XUgRgcBICYrYVxazBLgBVKmuQ==","shasum":"43f12e8c780a6cd3cd2de3561fb3d5db0028573b","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.18.tgz","fileCount":231,"unpackedSize":2409149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJbPXmtoBU20qeHrucxEyVyctwqdIE3Ndn8V5OAXadQAiEA+e6YTUM82Ttt1/Jn1keBFftgEhsqi9z/n+4v08+R9sM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilHBNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgUg/9FTHgRr9n/5i52UK0Gz14fhKGKLCQ+t3W/JiEeQIzjUEYL3UB\r\nXiox6gJqyknUGJojtmBfWlvOgNf1mqRE/9olTrAXdxT6LssAiDEJqMaveITd\r\nVIr8rvK79bRukgYWVX7sTAF0Tkl9ypApqKLVYaz46RHtqBCRXzTK9ABa9SnJ\r\ngwIjgvZOV+yWXwkxonscLutQmpDrpooVc3ksK+YbwgtuIfOrE/Yuck8URkRh\r\n39JWS3EUbD8xxBhh0HT+oXVq9LrQQX3E2rFX8s9j+ueIfJDCU1e0JhJUbSXe\r\nTR+VCWhMQ8VyeZPB0nH0WSfbtLzp3of+ockJTRAiGOzh1dEw/83mgcH31ead\r\nWImjwZo1zSolh8IOagQdj7AJqt0l5kh0mC01n3MpN7UUzPv7A2ypxT6NADbM\r\nNqt1cl4YfXyT5IfIx8IGQQWUtA0UeHJJAroEkuWeTzTd2GWC+5MwSvQ+/CXY\r\nO0nY6qdSiGTfrRFqS9cHV1FGTAfYRLwjEosw3bx48CFr7H/m1V3L+p/GNAYe\r\nlGYjvdtUbG2A7P3yNpg7irEkhN5c0YejQe0hvyyyyVA2ArRRo4Odfhhx4IS+\r\n5P2y8OsJ+XucgwcaJ1bCA+dK4PNoHfWECTDFf/ADqjMDgnclJGezffkMRqoP\r\n7xyzEa+FXtwyRWilB6ZVuPa+8A8AM+7jn8M=\r\n=t/id\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.18_1653895245165_0.13822844843313176"},"_hasShrinkwrap":false},"4.0.0-beta.19":{"name":"react-query","version":"4.0.0-beta.19","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"80958591fde797fd7040ee6fcf04c642e97d3008","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.19","_nodeVersion":"14.19.2","_npmVersion":"6.14.17","dist":{"integrity":"sha512-0QR8coF2WFih9p7s25h+QM9HDhlyr6Q1Pj8dWe0j1qjxku3egt0v7W9XqHiovZlIYlwyChOBeQ/3wQqWdUfUWg==","shasum":"21ad1f6fca09ccbf42f726153108f83a39447986","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.19.tgz","fileCount":231,"unpackedSize":2407655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSHJTl5SiHGPuWDAlqI7k5n3L3oj2GRPNRs4Z9TvzcAQIhAJBoVa0nbAg867YVyAMctGoU+WrFZZQh4J3dXufm4cPQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilHRzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmro7xAAkCb5jTv8Q7c3AztH8rmeacauC9wFW1Hc8UgOGeXOG5ffWsnr\r\ngs+l+8OT640aK3CvWBd4D2pg6+PG7QxHJQ4iD0eQaTaYiIijXwxw+G1AHDGM\r\n+9//5qhMQzvJYmoP+gInTTz2oc2II7yVNV8hfpXtGwWyTUdDNukN8AKRLJrj\r\naAojUrCMA6zC881dHK+AFIYWMVVqNkjqbpspexrsvnWquqm3P4IqtXQzAuvD\r\n2eFE6/uH5Y9dU9PAyVyuMQuzdbniGjl2r2o3DuWUfJKLMXP1BEgQdMV7zDt5\r\nL+Bz3W4ckCy9kt31nw9Gp3ihvamDm/hZ1tj0tZxc8wG09ZpSzOoBr1LXp2vg\r\nxrN8OfeSnZYCjSZQSbQSof8NPs2O11ThroPIQssl8ABuVN31zzdXdZthpOV9\r\nhWNvRbrCAxLTY7ZbVElW1Na3gjkSVoMaC4VGKgnBNBorXrjKm/meiqc1cIjT\r\nb7aUWKfSWIF/GNhfS+/7nRkkVsAaa7hqFFnKoozCx+bnAyZ16GtswpJucGgT\r\nabneePGlWG7dS/qf2i8exqVbjt7i06gzxaF5Akj+6gKj6U2VGit4fCicRcuv\r\n/q55+4W9LvPXWpfHrDoYGXJqaJs6PQm2t9d9TK98QVCTH95LPzrcMFWN9xaF\r\nlebinEQBWS0Cs2dSyjDiVCIdnnNQzEL90m8=\r\n=yT6t\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.19_1653896307209_0.5136745983973656"},"_hasShrinkwrap":false},"4.0.0-beta.20":{"name":"react-query","version":"4.0.0-beta.20","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"f77f6f4f924d7aa1107cbb9bb2dfd09f81beddd8","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.20","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-ESDxiHbv4R6KL7IOduPZjgVQo1pH5tenehAemh7sNETqXt9r4mfk9vVG6aSWbzGp6F1tudRllTreADOi19RJqg==","shasum":"37e73280ccbee291d845e08159eb84e9baff6d7b","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.20.tgz","fileCount":231,"unpackedSize":2406573,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc9d4i4AG1LiZD1CJTJT9439+IZLI7/Px34p/up28PIgIgHJBLinAguTAGwqBH2hD570ng8Nkaqi6TQK4cVPpbOIE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimcQmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoA0Q//ZrcJEAJCuojbY+5u17jiFnDVwUwZ8qUI2fl+lJlSDOuhLtZd\r\n9cYstd76o7vAmm95g8nY5nt6e2jPt/ssTCb5ItQxITPUv7g17+wNy2LZGPt9\r\nGQYtBU3k1YXT121iavSjwp/89nJ1uVeMVxZtViF3CGWQWC/vkCINc5a2cU/4\r\nRg8TGGgVEiCd9AAcG5kir4ZmBd0bTMOKcKMrn/U5wSUvyM7IKjAM9maGNsDx\r\nOw4Dt6Qj8bFlPZo5pQ/YXMj0lNRRjexENyxQOuAUSqkdhDMxGWJ/NjXhQz8r\r\n/t36cfcqFLwInI4RDHiOuHS4ipzYXotxXk+6bQiQWdAXgaZoL0Ug8qKVnCLF\r\nv2FdqrsaMzfjWHaIaDmsIE4tqc726/z637A5355RF4EIJuaotxHq3vXhoWzE\r\n76Co0Np9bhyrru1lnpAx5ve0RIp6JMebD5Ki5TAaAQ3CA4hULPb1+WeHaFcz\r\nzZ2wOvHp5H40+86D2wzBMu1iR2mpoXutH2/2UFv0O25at56AebqxUYPTok6N\r\ns102NasUA4iiTCrgztcbEazjMeLoHByrjD1VZ5BckM8cLHVct7YeNRt/wLRK\r\n6vvBGSWko11bKUTRpTrObcePxYBth2vkArIpASZlIk+QjrJESXLbTety0xBO\r\n6gA8xmCWwTZ05RFX5V7vlBm/i0OJaKqvLzo=\r\n=wIEw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.20_1654244389904_0.8673664178022262"},"_hasShrinkwrap":false},"4.0.0-beta.21":{"name":"react-query","version":"4.0.0-beta.21","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"97484dc684023d837bae07cc8b8b7ee83910cdd4","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.21","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6crIXi23qnLURbZbWm//7yCkhl2C0DKcyta80OxPNBHzhAxThHaqki/DpYi/Geig5i7TdC407b3yryxOw/j6Tw==","shasum":"339ff44effa7258d366ded85be9a15feb808db2c","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.21.tgz","fileCount":231,"unpackedSize":2407396,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkIec680B9akFSDurQY6m5gxrmguQXQ0rfNYnW3jFHCAiEA+edU2I1nZjNwokOGpLUUpIxspeo/YgLC3YWASgNWXQc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinMn2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9Bg//eWm31peADzYWxSwGWydfvBCW2EQmC6+1ZvbbF2tn322g+4zf\r\n9ESa7VaYOEgK3qAOKH5mluUwvQxIPDK0YnH6vda0w93F9b/KelDI5Kbrs3Bf\r\n6VTiAX2g5L7ceIHUS9qob4AEi0NJsfjeO62ghVPlQNCDwY/l8GQbWm7Qw8hD\r\nQ6RwqMiHQGmZQrVEJY0uPBzxSGWDJtRCTygEpsFtqv8id8EAddL3J2WccBqB\r\n4bsiqDNM9YwXA/c/oxwGUF3qUsDNJMmtmSBaWGucYh85VJ7IBmhQFahhiUNO\r\n88UHzCVxXLchhr9h/bWdElXfXU5HkR19GmNFpYgzKUcSm8mGYFucSm1S/Uj3\r\niatFLLEA+QpLUkGOcSxe4fsRwAbnIj60E7rDeyo67XMp5WrAFkavySiQtqbS\r\nsFDDCf1sp6vyCM7fBMG0DvOY5hbPUaXloEta1GXrfPVo6uSZP0uiEFJsFieU\r\nnkQe0NE32jB7AV+drHK/lsoZGEAbZfQUix5gQrIazm+lm/pDyi6CKTjPU/Rh\r\nEAZHMFnI1WEyhGVa8AeHqHi7MyWMBMYE1YOd/my8Vf8TacFnHr6RgDrMI99o\r\ntRTQU6SWrIUwZcf8guWEA2S4nrEcXge0OvhxW27fJErUzyxb8yvKjaEHZMLb\r\nTT3VqatPi5nQ8CbGpeD8FPihkzTvk3uochE=\r\n=hHCq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.21_1654442485721_0.5354847850913647"},"_hasShrinkwrap":false},"4.0.0-beta.22":{"name":"react-query","version":"4.0.0-beta.22","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"a46ba650e6d56069cd3a78dd16ca83ede6da5a24","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.22","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-M7t6UVeajFCElEw+gU0hgV6DaypfkTXUNQkj9pdYY4UanDyNm+LfW25ssxs2/80tAVlNjzmsiNWI+eFjDqNo9g==","shasum":"dcd84bcd7201e1451f08065ffb57323acfbf8088","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.22.tgz","fileCount":231,"unpackedSize":2409834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/G2O9/iO1remcHVSjnftRKIKagzfxl1onahHRn5nuRgIgPKQ/l3OQF+j0Rdvbjs5UNX/jcS2n+i2uKIzAVY4jvBw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinZTGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoV4g/+KYsVsNwmBrEj83OZsRwe8nLCndrU7ZPywhslk8QEBMCabTr2\r\nfbM47J2STHlAb9gSYE7LtsTAyRoiZPaT1BY7+XopldyjEgUIziNgHCp89buU\r\n4AB8dX5ikv/jy3lNTEMi7L+7NTME226tBBzuN1N5q1JUaDqE6UBbO5gMrQYz\r\nfT9ASzH8ZrhpUJGV/y5WEHwdHvU5768c/2ebAFoAnS9Yl+1eVTz/ysluZ9Cm\r\neG9m1YMlBa8Fr+h4Ah5/ieqsA0g2LhLx/EdSZbDGs+H5ILic0iqZwWZUO+Z1\r\nwi865fyuUuo+baSTc48tSqHDM2Ci2sYMzmCsk3UetZnt4yrg1j7Q38hPSUtO\r\n/2GzFOClQFah8lDXAz8LNhBBvlimAhS4vyWUx4YJjjeBi33LIJudcU3nZeic\r\nEFxQmykTrIJLQXSGBC8nI3Uv6MpzVRpBqka3xMlVjDragtw6d43Ld3vTb2nE\r\nBhrxgwWMJVOzR+SrYZORT3dj1Dw0zfBtEqJki6OtQjIJx9oDa1c25la/17lD\r\nFd8CwJE+/ev3O4F1gPUu2OOGu3UzH7rkRsqBk2oJ6eXacJWoiX/dS9rvREmV\r\nVkVMsWe2EVNFadijMFYu3CpqXyFRxVURUf2Gkge83mUwwXnddq4AgM34gZY/\r\nDLHtqWaaRRTchisOC+EfbIDySxh7hQtS1pk=\r\n=jMDy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.22_1654494406127_0.1926240889235724"},"_hasShrinkwrap":false},"4.0.0-beta.23":{"name":"react-query","version":"4.0.0-beta.23","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","module":"lib/index.mjs","types":"lib/index.d.ts","unpkg":"dist/react-query.development.js","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"exports":{".":{"import":"./lib/index.mjs","default":"./lib/index.js"},"./package.json":"./package.json","./core":{"import":"./lib/core/index.mjs","default":"./lib/core/index.js"},"./reactjs":{"import":"./lib/reactjs/index.mjs","default":"./lib/reactjs/index.js"},"./devtools":{"development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"import":"./lib/devtools/noop.mjs","default":"./lib/devtools/noop.js"},"./devtools/development":{"import":"./lib/devtools/index.mjs","default":"./lib/devtools/index.js"},"./persistQueryClient":{"import":"./lib/persistQueryClient/index.mjs","default":"./lib/persistQueryClient/index.js"},"./createWebStoragePersister":{"import":"./lib/createWebStoragePersister/index.mjs","default":"./lib/createWebStoragePersister/index.js"},"./createAsyncStoragePersister":{"import":"./lib/createAsyncStoragePersister/index.mjs","default":"./lib/createAsyncStoragePersister/index.js"},"./broadcastQueryClient-experimental":{"import":"./lib/broadcastQueryClient-experimental/index.mjs","default":"./lib/broadcastQueryClient-experimental/index.js"}},"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest --watch","test:dev:17":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && REACTJS_VERSION=17 jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && npm run test:codemod && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","test:codemod":"jest --config codemods/jest.config.js","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf './lib/**/*.d.ts' && tsc --project ./tsconfig.types.json","watch":"yarn watch:commonjs && watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf './lib/**/*.js' && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf './lib/**/*.mjs' && cross-env BABEL_ENV=es babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib --out-file-extension .mjs","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf './lib/**/*.d.ts' && tsc --watch --project ./tsconfig.types.json","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.17.9","@types/use-sync-external-store":"^0.0.3","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2","use-sync-external-store":"^1.1.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"devDependencies":{"@babel/cli":"^7.17.6","@babel/core":"^7.17.9","@babel/plugin-transform-runtime":"^7.17.0","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@rollup/plugin-babel":"^5.3.1","@rollup/plugin-commonjs":"21.1.0","@rollup/plugin-node-resolve":"^13.2.1","@rollup/plugin-replace":"^4.0.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^13.0.0","@testing-library/react-17":"npm:@testing-library/react@^12.1.4","@types/jest":"^26.0.4","@types/jscodeshift":"^0.11.3","@types/node":"^16.11.10","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.6.0","@typescript-eslint/parser":"^5.6.0","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-add-import-extension":"^1.6.0","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"^4.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","jscodeshift":"^0.13.1","prettier":"2.2.1","react":"^18.0.0","react-17":"npm:react@^17.0.2","react-dom":"^18.0.0","react-dom-17":"npm:react-dom@^17.0.2","react-error-boundary":"^3.1.4","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.70.2","rollup-plugin-node-externals":"^4.0.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^7.0.2","rollup-plugin-visualizer":"^5.6.0","typescript":"4.5.3"},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/master/media/repo-dark.png)\n\nHooks for fetching, caching and updating asynchronous data in React\n\n<a href=\"https://twitter.com/intent/tweet?button_hashtag=TanStack\" target=\"\\_parent\">\n  <img alt=\"#TanStack\" src=\"https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack\">\n</a><a href=\"https://discord.com/invite/WrRKjPJ\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/badge/Discord-TanStack-%235865F2\" />\n</a><a href=\"https://github.com/tannerlinsley/react-query/actions?query=workflow%3A%22react-query+tests%22\">\n<img src=\"https://github.com/tannerlinsley/react-query/workflows/react-query%20tests/badge.svg\" />\n</a><a href=\"https://npmjs.com/package/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-query.svg\" />\n</a><a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n</a><a href=\"#badge\">\n    <img alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\">\n  </a><a href=\"https://github.com/tannerlinsley/react-query/discussions\">\n  <img alt=\"Join the discussion on Github\" src=\"https://img.shields.io/badge/Github%20Discussions%20%26%20Support-Chat%20now!-blue\" />\n</a><a href=\"https://bestofjs.org/projects/react-query\"><img alt=\"Best of JS\" src=\"https://img.shields.io/endpoint?url=https://bestofjs-serverless.now.sh/api/project-badge?fullName=tannerlinsley%2Freact-query%26since=daily\" /></a><a href=\"https://github.com/tannerlinsley/react-query\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-query.svg?style=social&label=Star\" />\n</a><a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a> <a href=\"https://gitpod.io/from-referrer/\">\n  <img src=\"https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod\" alt=\"Gitpod Ready-to-Code\"/>\n</a>\n\nEnjoy this library? Try the entire [TanStack](https://tanstack.com)! [React Table](https://github.com/tannerlinsley/react-table), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n## Visit [react-query.tanstack.com](https://react-query.tanstack.com) for docs, guides, API and more!\n\nStill on **React Query v2**? No problem! Check out the v2 docs here: https://react-query-v2.tanstack.com/. <br />\nWould you like to try **React Query v4beta**? Check out the v4 beta docs here: https://react-query-beta.tanstack.com/.\n## Quick Features\n\n- Transport/protocol/backend agnostic data fetching (REST, GraphQL, promises, whatever!)\n- Auto Caching + Refetching (stale-while-revalidate, Window Refocus, Polling/Realtime)\n- Parallel + Dependent Queries\n- Mutations + Reactive Query Refetching\n- Multi-layer Cache + Automatic Garbage Collection\n- Paginated + Cursor-based Queries\n- Load-More + Infinite Scroll Queries w/ Scroll Recovery\n- Request Cancellation\n- [React Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html) + Fetch-As-You-Render Query Prefetching\n- Dedicated Devtools\n- <a href=\"https://bundlephobia.com/result?p=react-query@latest\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-query@latest\" />\n  </a> (depending on features imported)\n\n### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/)\n\n# Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://tannerlinsley.com\"><img src=\"https://avatars0.githubusercontent.com/u/5580297?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Tanner Linsley</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tannerlinsley\" title=\"Code\">💻</a> <a href=\"#ideas-tannerlinsley\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#example-tannerlinsley\" title=\"Examples\">💡</a> <a href=\"#maintenance-tannerlinsley\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atannerlinsley\" title=\"Reviewed Pull Requests\">👀</a></td>\n    <td align=\"center\"><a href=\"http://cherniavskii.com\"><img src=\"https://avatars2.githubusercontent.com/u/13808724?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Andrew Cherniavskii</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=cherniavskii\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Acherniavskii\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"http://twitter.com/tibotiber\"><img src=\"https://avatars3.githubusercontent.com/u/5635553?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Thibaut Tiberghien</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tibotiber\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/gargroh\"><img src=\"https://avatars3.githubusercontent.com/u/42495927?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rohit Garg</b></sub></a><br /><a href=\"#tool-gargroh\" title=\"Tools\">🔧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Avi98\"><img src=\"https://avatars1.githubusercontent.com/u/26133749?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Avinash</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=Avi98\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3AAvi98\" title=\"Bug reports\">🐛</a></td>\n    <td align=\"center\"><a href=\"https://github.com/CreativeTechGuy\"><img src=\"https://avatars1.githubusercontent.com/u/12002072?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jason O'Neill</b></sub></a><br /><a href=\"#maintenance-CreativeTechGuy\" title=\"Maintenance\">🚧</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=CreativeTechGuy\" title=\"Tests\">⚠️</a></td>\n    <td align=\"center\"><a href=\"http://fb.me/yz\"><img src=\"https://avatars3.githubusercontent.com/u/14841421?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jack Zhao</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=bugzpodder\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/issues?q=author%3Abugzpodder\" title=\"Bug reports\">🐛</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/dpyzo0o\"><img src=\"https://avatars1.githubusercontent.com/u/24768249?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>dpyzo0o</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=dpyzo0o\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jelteliekens\"><img src=\"https://avatars1.githubusercontent.com/u/3418474?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jelte Liekens</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jelteliekens\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jgettings\"><img src=\"https://avatars0.githubusercontent.com/u/4183742?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jen Gettings</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jgettings\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/justincy\"><img src=\"https://avatars2.githubusercontent.com/u/1037458?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Justin</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=justincy\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.marceloalves.com\"><img src=\"https://avatars1.githubusercontent.com/u/216782?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Marcelo Alves</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=MarceloAlves\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zorzysty\"><img src=\"https://avatars0.githubusercontent.com/u/5398733?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Zorza</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zorzysty\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://tkdodo.eu\"><img src=\"https://avatars0.githubusercontent.com/u/1021430?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Dominik Dorfmeister</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=tkdodo\" title=\"Documentation\">📖</a> <a href=\"#maintenance-tkdodo\" title=\"Maintenance\">🚧</a> <a href=\"#question-tkdodo\" title=\"Answering Questions\">💬</a> <a href=\"https://github.com/tannerlinsley/react-query/pulls?q=is%3Apr+reviewed-by%3Atkdodo\" title=\"Reviewed Pull Requests\">👀</a></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><a href=\"https://katt.dev\"><img src=\"https://avatars.githubusercontent.com/u/459267?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Alex Johansson</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=KATT\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://www.eddyvinck.nl\"><img src=\"https://avatars.githubusercontent.com/u/23434753?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eddy</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=EddyVinck\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://prateeksurana.me\"><img src=\"https://avatars.githubusercontent.com/u/21277179?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Prateek Surana</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=prateek3255\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"https://github.com/babycourageous\"><img src=\"https://avatars.githubusercontent.com/u/14936212?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Rene Dellefont</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=babycourageous\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/jvuoti\"><img src=\"https://avatars.githubusercontent.com/u/3702781?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Janne Vuoti</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=jvuoti\" title=\"Code\">💻</a></td>\n    <td align=\"center\"><a href=\"http://seaviewlab.com\"><img src=\"https://avatars.githubusercontent.com/u/20332397?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Arnaud</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Code\">💻</a> <a href=\"https://github.com/tannerlinsley/react-query/commits?author=arnaudbzn\" title=\"Documentation\">📖</a></td>\n    <td align=\"center\"><a href=\"https://github.com/zrwsk\"><img src=\"https://avatars.githubusercontent.com/u/9089600?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jakub Żurawski</b></sub></a><br /><a href=\"https://github.com/tannerlinsley/react-query/commits?author=zrwsk\" title=\"Documentation\">📖</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n<!-- Force 4 -->\n","readmeFilename":"README.md","gitHead":"ad82ee8ff4a2de55fbc51a6d439886a4e6c158fd","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@4.0.0-beta.23","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-e6mNBVAYGy0M1OwX0mhRB/lCkOedKeqTUrbPjNCqvm8hQGUsJJobqfHVvTv8o6JJaOO2MFcxKF4vZM+PEKbHZA==","shasum":"76713547670ef1f991ae828b3d51df63ec6e035c","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0-beta.23.tgz","fileCount":231,"unpackedSize":2410302,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXuOrVUEMYedSfbup+oHuylrBegn70/9harrPQk19lFAiANtEjITUJV7faLtjajZ3xhzyL7KW/2C395+JVW3TPkKA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJina2rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBng//d5D6nlzbf3ocgWNtLVpN7OJ/JrA1y8NtsOZMPxAeI0HNvaud\r\nYWdIb3esyTOxo/ftSzQuRK2cuxpQ8EN9yAhu6XQvjuW7BsAYvpJ0wFqVjwC0\r\nGOo072IkEsmH+ViadctQlyhCSlh1HfmpQGsdLIZ8MoxU+bUq122b8m5eamV4\r\nKaEJOtRGTS2M0ZyntBZqyRsSN6EWLGE4jYr9BuerZSLLx73V6KUIxdcSM3A+\r\nm9etf6oMbsn11TxL/AI+w4+h23G0qyD4sp6Qj9/36LZser0Sjdwh4BjfH8mq\r\nbwzQqLgN9mS0KgCp3U3/WwZYnShSS5k1fGcTZbz6SnaEktzom7VKddJv66RP\r\n8JodfLE9Oy2Wos/h4v8y14vXZwTIasHzyNWqOs7x6MCbFgkW0fp5lu4cw1wW\r\nb+SmVAow3CZ65gnXvRBZCa1XTyqxzgHE5i0K4opqQ0rkhdIvwcyDhDIq6vPN\r\ndcEKyBQGrsILudgAM+8IUbUX06i7lvvOouJxf0mDYpctzpOqgXjUnruI8jT7\r\nW4HHOmpn7FeGw8lwXlWUf8uURpr4AmWLbzkXXeAa/w/wbxI5spzQ7LYXI1uJ\r\nlD071LwW5lofELTPS4tpop7Z9o2hslFFv7Vo3E9Au0lojanXxibBdP556PcU\r\nyzyQvpp4IgLuqLQ4U1PduG49Nh7KqxJ0N6E=\r\n=xhtt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0-beta.23_1654500778942_0.1877921136107612"},"_hasShrinkwrap":false},"3.39.2":{"name":"react-query","version":"3.39.2","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"release":{"branches":["main"]},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"8a332bd05037497e12055a60dafd75b28daef317","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.39.2","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA==","shasum":"9224140f0296f01e9664b78ed6e4f69a0cc9216f","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.39.2.tgz","fileCount":211,"unpackedSize":2272510,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2C5tE7HnjxeJ+t4fE//ljeYuihendVUpVaox5efrsHAiBT6Omf/ITs7c1qDTLDH9qROsAzJ5HvJP+BhBBStKV2bg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0bIBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptaRAAmkNYIJSpGPzSJghytDJAU4WTu8OFw+he1GnaqtEVmCa2WY5u\r\nEAA+LPIJaJT6UVyNlGh3ofe7962zvgE6ZDrBz6500W+DTtddlit60TxAy0hJ\r\nGtLBb+h+GxDXsorbSNQ6C2uw3FyeVX+Y6xySXU2xVOuhBh+0mORxvhab97zs\r\nLlv0JVILEmPPkdHmhvi1yYhf/u0ihAQlqJu6+6/MEnd5TI2lFQpmv9L6ebUX\r\nYneC2ZaaePqD4fesm+ARuulmBEQp886QJ69m7vHtuquk+kh9cWBO692t/upE\r\n6wjjmBfsjKiaBl+B2KRsuLn3JJWeEXkUCf4GzYpzL2TIp/l7qup3X9KHhAGA\r\nkvTqviBibdIo4WzKuGTQK4diY4R3JsO9w9HY2KcFrOTZZxTHE83mRlWJoX5L\r\ncTHvVsJfU5tE9AocgbVgiIqsqOyAUXafx1E1baXa6rtJd/mGyE6YObWpg5gj\r\nZcv2bgTDOxhGBageT9vo5+3L8EsgAXUX8YjhKWa5HnaX2xpPbfSi4J2I50bm\r\nd2MElg13DnSJl8h8/e2ADPO4/FpJ2+spUfvheboE7pt0zyjzrL6ejfE4IoK+\r\ntZ753ZC0JDeDcm14H+814JUZei4XiXQMwHYyAhln+JFDIXdsuk4/zcRdFq8U\r\n3sZQUnr5M2rq8xsZEjVDZmv6cXUHvIHt2i4=\r\n=/Bav\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.39.2_1657909761550_0.33681238076701736"},"_hasShrinkwrap":false},"4.0.0":{"name":"react-query","version":"4.0.0","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tanstack/query.git"},"homepage":"https://tanstack.com/query","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"module":"build/esm/index.js","main":"build/cjs/packages/react-query/src/index.js","browser":"build/umd/index.production.js","types":"build/types/packages/query-core/src/index.d.ts","sideEffects":["lib/index.js","lib/index.mjs","lib/reactjs/index.js","lib/reactjs/index.mjs","lib/reactjs/setBatchUpdatesFn.js","lib/reactjs/setBatchUpdatesFn.mjs"],"scripts":{"test:codemods":"../../node_modules/.bin/jest --config codemods/jest.config.js","test:eslint":"../../node_modules/.bin/eslint --ext .ts,.tsx ./src","test:jest":"yarn test:codemods && ../../node_modules/.bin/jest --config jest.config.js","test:jest:dev":"yarn test:jest --watch","compile":"../../node_modules/.bin/tsc -p tsconfig.json --noEmit --emitDeclarationOnly false"},"devDependencies":{"@types/jscodeshift":"^0.11.3","jscodeshift":"^0.13.1","react-error-boundary":"^3.1.4"},"dependencies":{"@tanstack/query-core":"^4.0.0-beta.1","@types/use-sync-external-store":"^0.0.3","use-sync-external-store":"^1.2.0"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","react-native":"*"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"gitHead":"357ec041a6fcc4a550f3df02c12ecc7bcdefbc05","bugs":{"url":"https://github.com/tanstack/query/issues"},"_id":"react-query@4.0.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-qiW+Yvbl+EK8iwPDJAj4qWAKceh+g8Up8jxoNxJbzhV3bNheeyHF3EyynnkDO3S+CYgSwtCUFaP8vOjB62j7xQ==","shasum":"d8a5347503d0aedebc957e35b408c4aa3f726580","tarball":"https://registry.npmjs.org/react-query/-/react-query-4.0.0.tgz","fileCount":105,"unpackedSize":2059315,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/Qtra0uStohNVu429spIdHuAPbqehWSJiT0Pp2vermAIgcBm6gVzbb+KILx5wBx02OpceezAG3jOhObr+8Gp0f+U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1a7JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+7w/8D7ukmjuy5hgwr8hSIv9YuRBwBORsZiYxALIIMYCPbN5ewlKU\r\nYf0qvPxmsAze+77ukCaaapJJnzV6D+oagcsx1gmBJTI1yIPQnemU7PApl01l\r\n8GyWSL0sDxuySRQNs6KHIlztdMwKFVJYNBvPFWJOZd713opxNRSfvaW1gOoA\r\nPqUYLvORxWE7irC7Ke+6Id8MxIcv2uE7oEZcSutcFQAq0YHfveBkPCOXiHMI\r\n7LLYGyX4Jcheu9Y49bXr0z4nWIFx0niu6pk9HOYLTG7C874ORGRan0Rs4ght\r\nvb3jEWbCSdfBkkdm8Xz2096QwgpajZDapued2T0dSWCTX5uYUm2zSfFuI5Vp\r\nz8xG0RFrP0YYhkkuV21nfhlgHml5c3nt/ybqf2yGqaRAjd1FI9PqVPgNR1Rr\r\nvn7tz5dbcWu43hEM88P7JDYCy6LswDcYuq1bgJvm2PKpzO6Q/TW+k8kBxX6a\r\ny0/cf/aJQ4ReV9XQg05VQ6e5P4O1XV4XXIq976rUIdvVG/1ML/05TdQd5hcR\r\nGIvcWeYWRQMmR0dFuFcMhbfGGVS9ZUL/x5jlhATyvad/mMGK0hZqWoxnr1Px\r\nKxMBJDeAVoJVkJfXrw7GRLdUfkDMfvTEHKY9xCdt54HHgBjcW0bWY83uTX9S\r\npawmv9AYwIoLgRwhrZUAJTcHFVFP51hLrM0=\r\n=X+KU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_4.0.0_1658171080727_0.3706074635664962"},"_hasShrinkwrap":false,"deprecated":"Please use @tanstack/react-query for v4+"},"3.39.3":{"name":"react-query","version":"3.39.3","description":"Hooks for managing, caching and syncing asynchronous and remote data in React","author":{"name":"tannerlinsley"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"homepage":"https://github.com/tannerlinsley/react-query#readme","funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"main":"lib/index.js","unpkg":"dist/react-query.development.js","types":"types/index.d.ts","module":"es/index.js","sideEffects":["es/index.js","es/react/index.js","es/react/setBatchUpdatesFn.js","es/react/setLogger.js","lib/index.js","lib/react/index.js","lib/react/setBatchUpdatesFn.js","lib/react/setLogger.js"],"scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"npm run test:types && npm run test:format && npm run test:eslint && jest --watch","test:ci":"npm run test:types && npm run test:format && npm run test:eslint && jest","test:coverage":"yarn test:ci; open coverage/lcov-report/index.html","test:format":"yarn prettier --check","test:types":"tsc","test:eslint":"eslint --ext .ts,.tsx ./src","test:size":"yarn build:umd && bundlewatch","build":"yarn build:commonjs && yarn build:es && yarn build:umd && yarn build:types","build:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","build:es":"rimraf ./es && babel --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","build:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -c && rollup-plugin-visualizer stats-react.json","build:types":"rimraf ./types && tsc --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","watch":"yarn watch:commonjs & yarn watch:es & yarn watch:umd & yarn watch:types","watch:commonjs":"rimraf ./lib && cross-env BABEL_ENV=commonjs babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir lib","watch:es":"rimraf ./es && babel --watch --extensions .ts,.tsx --ignore ./src/**/tests/**/* ./src --out-dir es","watch:umd":"rimraf ./dist && cross-env NODE_ENV=production rollup -w -c && rollup-plugin-visualizer stats-react.json","watch:types":"rimraf ./types && tsc --watch --project ./tsconfig.types.json && replace 'import type' 'import' ./types -r --silent && replace 'export type' 'export' ./types -r --silent","now-build":"yarn && cd www && yarn && yarn build","prettier":"prettier \"{.,src,src/**,example/src,example/src/**,types}/*.{md,js,jsx,ts,tsx,json}\"","start":"yarn watch","format":"yarn prettier --write","stats":"open ./stats.html"},"dependencies":{"@babel/runtime":"^7.5.5","broadcast-channel":"^3.4.1","match-sorter":"^6.0.2"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0"},"peerDependenciesMeta":{"react-dom":{"optional":true},"react-native":{"optional":true}},"typesVersions":{"<4.1":{"types/*":["types/ts3.8/*"]}},"devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-transform-runtime":"^7.11.5","@babel/preset-env":"^7.11.5","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^5.4.0","@testing-library/react":"^10.4.7","@testing-library/jest-dom":"^5.14.1","@types/jest":"^26.0.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"^4.8.1","@typescript-eslint/parser":"^4.8.1","babel-eslint":"^10.1.0","babel-jest":"^26.0.1","babel-plugin-const-enum":"^1.0.1","babel-plugin-transform-async-to-promises":"^0.8.15","bundlewatch":"^0.3.2","cross-env":"^7.0.2","eslint":"7.x","eslint-config-prettier":"^6.11.0","eslint-config-react-app":"^5.2.1","eslint-config-standard":"^14.1.1","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"5.x","eslint-plugin-import":"^2.22.1","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.3","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.20.0","eslint-plugin-react-hooks":"4.2.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.1.1","jest":"^26.0.1","prettier":"2.2.1","react":"^16.13.0","react-dom":"^16.13.1","react-error-boundary":"^2.2.2","replace":"^1.2.0","rimraf":"^3.0.2","rollup":"^2.16.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-jscc":"^1.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.2","rollup-plugin-prettier":"^2.1.0","rollup-plugin-size":"^0.2.2","rollup-plugin-terser":"^6.1.0","rollup-plugin-visualizer":"^4.0.4","type-fest":"^0.21.0","typescript":"^4.1.2"},"resolutions":{"@types/react":"^16.9.41","@types/react-dom":"^16.9.8"},"release":{"branches":["main"]},"bundlewatch":{"files":[{"path":"dist/*.production.min.js"}]},"gitHead":"ef684205cb4890db904db5b387513fb9042e0bb6","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"_id":"react-query@3.39.3","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==","shasum":"4cea7127c6c26bdea2de5fb63e51044330b03f35","tarball":"https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz","fileCount":211,"unpackedSize":2260885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDp/s4oMUMCq8K5OCYm4kIYUKjGef54NkeHeGpee5fRXAIhALS33t7D+mQ1qT1F4NDDaP+wHiBD+y8mcVrWjsM2vE+S"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0Ya4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqdmhAAiPQ3tWrmowYTY2g8IqCt/4EYdWeV6wl0PD8S/eoIQkCl6bnv\r\nTwqjOCYnq4nZdTiSusqLQEk4NXaAsoKbARD51LkQSsmtCE6nk8U72z7wa8Ma\r\n23rSovKtX3gvj3o6eHpVnPi8ODJUFviYNGT8gMckoRglhDSYttaQeiY87Phq\r\nZ69JPH2Kk+iTHN0WWWjzAwj4R/5t4HSct6em89GUMR3g5VbDHKtyU6a1ipoz\r\nWMCTionQGisxkjwpbCuODfLv4OoMXIZoKcjs+WdZ8bu8t6Pgv0RAgODqPtdF\r\naR2XtivrsZoM2uTOnfZTt89WFFqEW5JYRFyrcrJT8cnnaePTYSIMWPAjfUJ3\r\nC5+5FgKvVwevRQblKQanF3+YDBOXzNeO61SV2gRqrhm+dJElCRQD+8qV4etr\r\nTv7uuBmdC3maNh7VFt18yZ+ypCZ0nXBYRLhT09sl6LoJ9zIpWilmoAMMNhdQ\r\npc/zGNGie3gqeUwS/T3RzDDfVDVUaJF6MwjGnL2qtlIZhpwB0XPctAMec3Bk\r\nFg9goLL2m8iCX+fMEDWS1ZNDhtmpmpWRaEQaYFFNSwJEZEkZ2k6GR2IxhSGN\r\nsE7rIXTBOv3M+pF2LNIVESSnmfR5fLSpyfDqYuDEKsgfO6p2ESKwVyBIV+60\r\nwSYhz47YUmv3Q2gf90rHCWb2UtDisQbJn1E=\r\n=/IGm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tkdodo","email":"dominik@dorfmeister.cc"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"tkdodo","email":"dominik@dorfmeister.cc"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-query_3.39.3_1674675896533_0.02822540662302231"},"_hasShrinkwrap":false}},"readme":"<img src=\"https://static.scarf.sh/a.png?x-pxid=be2d8a11-9712-4c1d-9963-580b2d4fb133\" />\n\n![React Query Header](https://github.com/tannerlinsley/react-query/raw/main/media/repo-dark.png)\n\n## Note\n\nYou're looking at the v3 version of react-query. Starting with v4, react-query is now available as [@tanstack/react-query](https://www.npmjs.com/package/@tanstack/react-query)\n\nFind the docs at https://tanstack.com/query/latest\n\n<!-- Use the force, Luke -->\n","maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"tkdodo","email":"dominik@dorfmeister.cc"}],"time":{"modified":"2023-01-25T19:44:56.804Z","created":"2014-08-24T19:07:48.154Z","0.0.1":"2014-08-24T19:07:48.154Z","0.0.2":"2014-08-25T06:39:19.398Z","0.0.3":"2014-08-25T06:56:12.367Z","0.0.4":"2014-08-25T08:09:04.855Z","0.0.5":"2014-08-25T10:24:21.713Z","0.0.6":"2014-08-25T12:16:31.318Z","0.0.7":"2014-08-25T14:46:11.636Z","0.0.8":"2014-08-27T08:55:42.221Z","0.0.9":"2014-08-29T07:38:39.711Z","0.0.10":"2014-08-29T09:59:12.956Z","0.0.11":"2019-11-02T20:35:16.402Z","0.0.12":"2019-11-03T17:13:23.107Z","0.0.13":"2019-11-03T17:14:02.248Z","0.0.14":"2019-11-04T05:42:36.782Z","0.0.15":"2019-11-04T05:52:10.493Z","0.0.16":"2019-11-04T21:15:14.492Z","0.0.17":"2019-11-04T21:22:00.761Z","0.1.0":"2019-11-04T21:42:40.304Z","0.1.1-alpha.0":"2019-11-04T23:43:17.129Z","0.2.0":"2019-11-05T05:27:32.596Z","0.2.1":"2019-11-05T15:58:16.112Z","0.3.0":"2019-11-06T15:20:30.081Z","0.3.1-alpha.0":"2019-11-06T23:39:25.662Z","0.3.1-alpha.1":"2019-11-07T00:16:02.874Z","0.3.1":"2019-11-07T16:36:21.870Z","0.3.2":"2019-11-07T19:18:24.748Z","0.3.3":"2019-11-07T19:22:43.001Z","0.3.4":"2019-11-07T19:24:20.851Z","0.3.5":"2019-11-08T15:25:55.184Z","0.3.6":"2019-11-08T17:49:42.735Z","0.3.7":"2019-11-11T17:11:24.478Z","0.3.8":"2019-11-11T17:12:44.826Z","0.3.9":"2019-11-13T17:30:07.011Z","0.3.10":"2019-11-13T20:50:18.830Z","0.3.11":"2019-11-13T21:35:42.946Z","0.3.12":"2019-11-13T21:37:21.759Z","0.3.13":"2019-11-15T19:46:14.664Z","0.3.14":"2019-11-19T22:33:11.075Z","0.3.15":"2019-11-20T19:23:51.116Z","0.3.16":"2019-11-25T16:26:02.174Z","0.3.17":"2019-11-25T16:53:53.011Z","0.3.19":"2019-12-02T08:01:02.478Z","0.3.20":"2019-12-02T16:15:10.963Z","0.3.21":"2019-12-06T05:49:43.039Z","0.3.22":"2019-12-09T20:34:41.131Z","0.3.23":"2019-12-09T20:44:47.771Z","0.3.24":"2020-01-09T16:10:24.746Z","0.3.25":"2020-02-17T04:37:30.832Z","0.3.26":"2020-02-17T04:47:34.060Z","0.3.27-test.0":"2020-02-17T05:07:53.398Z","0.3.27":"2020-02-17T05:11:52.185Z","0.4.0":"2020-02-17T06:04:05.952Z","0.4.1":"2020-02-17T06:28:26.872Z","0.4.2":"2020-02-17T06:38:17.492Z","0.4.3":"2020-02-18T00:15:59.101Z","1.0.0-alpha.0":"2020-02-18T00:21:18.967Z","1.0.0-alpha.1":"2020-02-18T16:00:04.234Z","1.0.0-alpha.2":"2020-02-19T00:01:11.753Z","1.0.0-alpha.3":"2020-02-19T00:03:50.826Z","1.0.0-alpha.4":"2020-02-22T23:56:37.250Z","1.0.0-alpha.5":"2020-02-26T14:41:58.148Z","1.0.0-beta.0":"2020-02-26T16:49:19.615Z","1.0.0":"2020-02-26T18:41:28.017Z","1.0.1":"2020-02-26T19:48:00.414Z","1.0.2":"2020-02-26T20:36:35.532Z","1.0.3":"2020-02-27T17:55:50.343Z","1.0.4":"2020-02-27T18:14:51.950Z","1.0.5":"2020-02-27T20:39:45.323Z","1.0.6":"2020-02-28T16:20:49.324Z","1.0.7":"2020-02-28T21:03:32.123Z","1.0.8":"2020-03-02T18:47:05.276Z","1.0.9":"2020-03-02T19:13:05.582Z","1.0.10":"2020-03-02T19:51:09.292Z","1.0.11":"2020-03-04T17:21:28.857Z","1.0.12":"2020-03-04T18:01:20.275Z","1.0.13":"2020-03-04T20:00:24.700Z","1.0.14":"2020-03-04T21:04:39.188Z","1.0.15":"2020-03-04T22:25:17.472Z","1.0.16":"2020-03-05T17:55:50.731Z","1.0.17":"2020-03-06T15:04:23.445Z","1.0.18":"2020-03-06T17:12:55.808Z","1.0.19":"2020-03-06T17:37:19.879Z","1.0.20":"2020-03-06T18:03:12.394Z","1.0.21":"2020-03-06T18:51:04.693Z","1.0.22":"2020-03-06T19:50:06.433Z","1.0.23":"2020-03-09T19:31:49.362Z","1.0.24":"2020-03-10T22:41:23.273Z","1.0.25":"2020-03-11T17:07:22.571Z","1.0.26":"2020-03-11T17:09:29.128Z","1.0.27":"2020-03-13T19:53:33.328Z","1.0.28":"2020-03-17T22:07:51.330Z","1.0.29":"2020-03-18T18:35:04.464Z","1.0.30":"2020-03-20T22:44:48.373Z","1.0.31":"2020-03-20T22:58:01.263Z","1.0.32":"2020-03-20T23:59:49.694Z","1.0.33":"2020-03-21T00:17:21.281Z","1.0.34":"2020-03-23T19:12:57.196Z","1.0.35":"2020-03-23T22:40:14.925Z","1.0.36":"2020-03-24T18:14:30.742Z","1.1.0":"2020-03-24T20:19:03.999Z","1.1.1":"2020-03-24T22:40:16.687Z","1.1.2":"2020-03-25T21:02:04.947Z","1.1.3":"2020-03-25T21:04:35.138Z","1.1.4":"2020-03-26T05:48:43.007Z","1.1.5":"2020-03-26T22:39:19.478Z","1.1.6":"2020-03-27T03:07:11.864Z","1.1.7":"2020-03-27T03:12:39.323Z","1.2.0":"2020-03-30T16:53:54.281Z","1.2.1":"2020-04-03T20:23:44.100Z","1.2.2":"2020-04-13T05:20:49.783Z","1.2.3":"2020-04-13T06:18:51.080Z","1.2.4":"2020-04-15T02:13:23.209Z","1.2.5":"2020-04-15T15:41:30.559Z","1.2.6":"2020-04-16T15:18:55.045Z","1.2.7":"2020-04-17T05:21:57.028Z","1.2.8":"2020-04-20T15:56:38.983Z","1.2.9":"2020-04-20T17:44:45.063Z","1.3.0":"2020-05-01T17:50:05.120Z","1.3.1":"2020-05-05T18:01:26.459Z","1.3.2":"2020-05-05T18:12:01.380Z","1.3.3":"2020-05-05T18:22:02.563Z","1.3.4":"2020-05-09T16:24:02.469Z","1.3.5":"2020-05-11T14:07:18.079Z","1.3.6":"2020-05-11T14:10:05.403Z","1.4.0":"2020-05-11T17:02:49.770Z","1.4.1":"2020-05-12T15:38:03.093Z","1.4.2":"2020-05-12T22:41:29.306Z","1.4.3":"2020-05-12T22:57:06.570Z","1.4.4":"2020-05-14T04:14:02.861Z","1.5.0":"2020-05-15T21:09:46.137Z","1.5.1":"2020-05-15T21:23:41.087Z","1.5.2":"2020-05-17T00:52:00.992Z","1.5.3":"2020-05-26T13:31:11.321Z","1.5.4":"2020-06-02T04:43:51.170Z","1.5.5":"2020-06-02T04:48:19.937Z","1.5.6":"2020-06-08T14:45:14.192Z","1.5.7":"2020-06-08T19:01:27.752Z","1.5.8":"2020-06-15T01:18:41.184Z","2.0.0-next.1":"2020-06-17T02:20:54.235Z","2.0.0-next.2":"2020-06-17T18:34:34.021Z","2.0.0-next.3":"2020-06-18T07:46:41.767Z","2.0.0-next.4":"2020-06-18T22:49:29.044Z","2.0.0-next.5":"2020-06-19T16:58:16.551Z","1.5.9":"2020-06-19T20:46:49.576Z","2.0.0-next.6":"2020-06-22T19:21:54.886Z","2.0.0-next.7":"2020-06-22T20:15:23.627Z","2.0.0-next.8":"2020-06-22T20:18:58.363Z","2.0.1":"2020-06-22T22:03:51.065Z","2.0.2":"2020-06-22T23:46:33.273Z","2.0.3":"2020-06-23T02:04:19.212Z","2.0.4":"2020-06-24T16:42:18.282Z","2.1.0":"2020-06-24T17:48:27.260Z","2.1.1":"2020-06-24T18:01:52.851Z","2.2.0":"2020-06-24T22:51:42.494Z","2.2.1":"2020-06-24T23:20:38.602Z","2.2.2":"2020-06-25T01:38:33.150Z","2.2.3":"2020-06-25T05:20:01.810Z","2.4.0":"2020-06-25T16:41:55.879Z","2.4.1":"2020-06-27T01:22:53.856Z","2.4.2":"2020-06-27T05:58:52.825Z","2.4.3":"2020-06-28T16:19:06.568Z","1.5.10":"2020-06-28T19:51:30.341Z","2.4.4":"2020-06-29T00:07:11.932Z","2.4.5":"2020-06-29T15:45:02.899Z","2.4.6":"2020-06-30T10:32:27.190Z","2.4.7":"2020-06-30T19:51:54.533Z","2.4.9":"2020-07-01T20:11:13.706Z","2.4.10":"2020-07-01T22:50:51.999Z","2.4.11":"2020-07-02T14:24:01.386Z","2.4.12":"2020-07-02T23:47:42.003Z","2.4.13":"2020-07-03T19:56:43.989Z","2.4.14":"2020-07-08T13:15:19.186Z","2.4.15":"2020-07-11T01:27:29.986Z","2.4.16":"2020-07-14T02:28:54.369Z","2.4.17":"2020-07-15T09:43:48.734Z","2.4.18":"2020-07-15T19:31:15.326Z","2.4.19":"2020-07-15T19:55:27.540Z","2.4.20":"2020-07-16T15:12:38.393Z","2.4.21":"2020-07-16T17:07:26.418Z","3.0.0":"2020-07-17T02:02:51.086Z","2.5.0":"2020-07-17T04:27:06.701Z","2.5.1":"2020-07-17T04:37:51.770Z","3.0.1":"2020-07-17T16:25:36.042Z","2.5.2":"2020-07-17T16:40:42.577Z","2.5.4":"2020-07-18T01:46:53.191Z","2.5.5":"2020-07-21T16:39:13.088Z","2.5.6":"2020-07-22T16:05:30.989Z","0.0.0":"2020-07-29T20:21:44.481Z","2.5.7-tsnext":"2020-07-29T20:30:01.824Z","2.5.7-tsnext.1":"2020-07-29T20:49:47.421Z","2.5.7":"2020-07-29T22:54:49.735Z","2.5.8":"2020-07-29T23:03:21.742Z","2.5.9":"2020-07-30T12:41:15.548Z","2.5.10":"2020-07-31T21:15:20.807Z","2.5.11":"2020-08-02T02:46:30.259Z","2.5.12":"2020-08-03T19:00:32.699Z","2.5.13":"2020-08-04T02:56:32.601Z","2.5.14":"2020-08-13T22:00:58.151Z","2.6.0":"2020-08-19T17:55:05.449Z","2.7.0":"2020-08-19T19:59:23.605Z","2.7.1":"2020-08-20T16:33:29.244Z","2.8.0":"2020-08-20T16:48:37.668Z","2.9.0":"2020-08-21T13:08:15.571Z","2.10.0":"2020-08-23T14:14:35.323Z","2.10.1":"2020-08-24T15:37:21.560Z","2.11.0":"2020-08-24T15:44:20.303Z","2.11.1":"2020-08-24T16:25:15.769Z","2.12.0":"2020-08-24T19:44:52.945Z","2.12.1":"2020-08-24T20:54:12.563Z","2.13.0":"2020-08-31T21:35:45.830Z","2.13.1":"2020-09-01T15:39:14.592Z","2.14.0":"2020-09-02T12:47:44.724Z","2.14.1":"2020-09-02T15:54:04.816Z","2.15.0":"2020-09-04T03:44:53.895Z","2.15.1":"2020-09-04T16:13:55.442Z","2.15.2":"2020-09-06T18:06:23.703Z","2.15.3":"2020-09-06T18:09:21.152Z","2.15.4":"2020-09-06T21:10:18.879Z","2.16.0":"2020-09-11T14:23:43.959Z","2.16.1":"2020-09-11T19:32:42.893Z","2.17.0":"2020-09-12T15:14:22.469Z","2.17.1":"2020-09-13T14:28:27.530Z","2.17.2":"2020-09-13T22:20:41.764Z","2.18.0":"2020-09-14T22:43:46.114Z","2.19.0":"2020-09-15T18:18:35.223Z","2.20.0":"2020-09-16T14:57:40.997Z","2.20.1":"2020-09-16T20:40:58.573Z","2.21.0":"2020-09-16T21:25:37.514Z","2.21.1":"2020-09-17T12:12:31.694Z","2.21.2":"2020-09-17T12:15:55.071Z","2.22.0":"2020-09-17T14:48:52.202Z","2.22.1":"2020-09-18T14:06:21.769Z","2.22.2":"2020-09-18T14:12:31.262Z","2.23.0":"2020-09-18T19:04:37.971Z","2.24.0-next.1":"2020-09-29T02:52:13.623Z","2.24.0-next.2":"2020-09-29T18:04:14.793Z","2.24.0-next.3":"2020-09-29T18:34:07.737Z","2.23.1":"2020-10-03T17:47:15.579Z","2.24.0-next.4":"2020-10-04T08:18:44.426Z","2.24.0-next.5":"2020-10-04T18:20:37.405Z","2.24.0-next.6":"2020-10-05T16:18:01.260Z","2.24.0-next.7":"2020-10-05T17:51:26.356Z","2.24.0-next.8":"2020-10-05T18:47:06.498Z","2.24.0":"2020-10-05T21:07:24.562Z","2.24.1":"2020-10-06T15:26:45.839Z","2.24.2":"2020-10-06T18:11:16.505Z","2.25.0":"2020-10-07T11:15:51.148Z","3.1.0":"2020-10-09T10:12:38.064Z","3.1.1":"2020-10-09T16:08:57.796Z","3.1.2-beta.1":"2020-10-09T18:14:45.096Z","3.2.0-beta.1":"2020-10-16T07:05:58.686Z","3.2.0-beta.2":"2020-10-18T10:17:56.653Z","3.2.0-beta.3":"2020-10-21T09:50:33.060Z","2.26.0":"2020-10-21T20:16:21.903Z","2.25.2":"2020-10-21T20:33:10.648Z","3.2.0-beta.4":"2020-10-22T07:28:02.564Z","3.2.0-beta.5":"2020-10-22T08:13:50.488Z","3.2.0-beta.6":"2020-10-22T11:38:44.198Z","3.2.0-beta.7":"2020-10-23T07:32:34.681Z","3.2.0-beta.8":"2020-10-23T15:49:48.598Z","3.2.0-beta.9":"2020-10-23T19:19:28.514Z","3.2.0-beta.10":"2020-10-24T13:19:10.296Z","3.2.0-beta.11":"2020-10-24T15:12:32.156Z","3.2.0-beta.12":"2020-10-24T16:53:14.403Z","3.2.0-beta.13":"2020-10-26T11:48:30.762Z","3.2.0-beta.14":"2020-10-27T07:41:51.399Z","3.2.0-beta.15":"2020-10-30T07:37:02.830Z","3.2.0-beta.16":"2020-11-01T16:17:10.004Z","3.2.0-beta.17":"2020-11-02T18:00:13.453Z","3.2.0-beta.18":"2020-11-03T07:35:44.768Z","2.26.1":"2020-11-03T21:28:51.974Z","2.26.2":"2020-11-05T16:22:43.960Z","3.2.0-beta.19":"2020-11-06T01:07:21.461Z","3.2.0-beta.20":"2020-11-06T07:39:53.858Z","3.2.0-beta.21":"2020-11-07T08:51:44.397Z","3.2.0-beta.22":"2020-11-09T08:08:59.919Z","3.2.0-beta.23":"2020-11-12T11:32:07.086Z","3.2.0-beta.24":"2020-11-15T09:42:26.818Z","3.2.0-beta.25":"2020-11-19T16:12:34.881Z","2.26.3":"2020-11-20T06:19:36.184Z","3.2.0-beta.26":"2020-11-20T08:02:56.118Z","3.2.0-beta.27":"2020-11-20T08:28:56.315Z","3.2.0-beta.28":"2020-11-22T10:01:59.734Z","3.2.0-beta.29":"2020-11-22T10:55:09.153Z","3.2.0-beta.30":"2020-12-02T10:36:56.695Z","3.2.0-beta.31":"2020-12-06T17:18:53.005Z","2.26.4":"2020-12-07T04:18:48.782Z","3.2.0-beta.32":"2020-12-07T06:29:31.002Z","3.2.0-beta.33":"2020-12-08T22:46:34.584Z","3.2.0-beta.34":"2020-12-09T02:15:53.406Z","3.2.0-beta.35":"2020-12-10T06:52:06.542Z","3.2.0-beta.36":"2020-12-10T22:37:41.882Z","3.2.0-beta.37":"2020-12-12T08:08:59.287Z","3.2.0-beta.38":"2020-12-12T10:22:01.258Z","3.2.0-beta.39":"2020-12-13T18:38:35.149Z","3.2.0":"2020-12-14T02:44:13.011Z","3.3.0":"2020-12-16T14:33:28.007Z","3.3.1":"2020-12-18T09:38:25.286Z","3.3.2":"2020-12-18T10:08:00.819Z","3.3.3":"2020-12-19T10:32:38.522Z","3.3.4":"2020-12-19T16:12:35.762Z","3.3.5":"2020-12-20T02:25:45.635Z","3.4.0":"2020-12-20T14:46:05.311Z","3.4.1":"2020-12-22T15:49:41.016Z","3.5.0":"2020-12-22T18:02:23.801Z","3.5.1":"2020-12-23T02:17:29.679Z","3.5.2":"2020-12-23T22:37:35.703Z","3.5.3":"2020-12-23T23:15:25.526Z","3.5.4":"2020-12-23T23:20:36.474Z","3.5.5":"2020-12-24T03:22:56.702Z","3.5.6":"2020-12-29T08:18:00.070Z","3.5.7":"2021-01-01T19:33:42.195Z","3.5.8":"2021-01-01T20:44:54.003Z","3.5.9":"2021-01-01T22:01:44.523Z","3.5.10":"2021-01-05T08:57:26.835Z","3.5.11":"2021-01-05T23:01:13.895Z","3.5.12":"2021-01-11T17:37:27.774Z","3.5.13":"2021-01-15T21:43:09.971Z","3.5.14":"2021-01-15T21:47:42.326Z","3.5.15":"2021-01-16T17:57:15.244Z","3.5.16":"2021-01-17T16:14:44.836Z","3.6.0":"2021-01-22T12:09:14.129Z","3.6.1":"2021-02-04T07:53:54.713Z","3.7.0":"2021-02-04T08:57:25.019Z","3.7.1":"2021-02-04T09:19:47.314Z","3.8.0":"2021-02-06T18:43:22.291Z","3.8.1":"2021-02-06T19:18:59.090Z","3.8.2":"2021-02-07T13:52:00.142Z","3.8.3":"2021-02-11T13:41:45.008Z","3.9.0":"2021-02-12T20:48:39.673Z","3.9.1":"2021-02-12T23:02:46.242Z","3.9.2":"2021-02-12T23:57:16.661Z","3.9.3":"2021-02-13T16:51:36.826Z","3.9.4":"2021-02-14T07:48:30.228Z","3.9.5":"2021-02-14T13:30:43.966Z","3.9.6":"2021-02-14T15:29:59.394Z","3.9.7":"2021-02-16T06:43:23.062Z","3.9.8":"2021-02-16T23:55:17.934Z","3.9.9":"2021-02-22T15:20:28.627Z","3.10.0":"2021-02-23T04:17:42.272Z","3.11.0":"2021-02-23T04:31:56.232Z","3.12.0":"2021-02-23T12:05:36.010Z","3.12.1":"2021-03-08T17:07:37.515Z","3.12.2":"2021-03-15T21:25:48.803Z","3.12.3":"2021-03-17T21:53:00.316Z","3.13.0":"2021-03-18T21:55:38.373Z","3.13.1":"2021-03-30T17:39:39.891Z","3.13.2":"2021-03-30T17:45:32.121Z","3.13.3":"2021-03-31T14:24:44.638Z","3.13.4":"2021-04-02T07:00:45.544Z","3.13.5":"2021-04-08T12:11:40.827Z","3.13.6":"2021-04-10T14:01:33.427Z","3.13.7":"2021-04-13T20:15:22.550Z","3.13.8":"2021-04-14T11:06:43.508Z","3.13.9":"2021-04-15T16:31:38.007Z","3.13.10":"2021-04-17T09:44:13.035Z","3.13.11":"2021-04-21T15:35:21.187Z","3.13.12":"2021-04-24T07:47:14.585Z","3.14.0":"2021-04-28T17:47:45.630Z","3.15.0":"2021-04-28T17:51:00.856Z","3.15.1":"2021-04-28T22:20:25.214Z","3.15.2":"2021-04-29T20:21:30.527Z","3.15.3":"2021-05-07T15:58:32.546Z","3.16.0":"2021-05-07T16:11:26.389Z","3.16.1":"2021-06-05T08:56:17.186Z","3.17.0":"2021-06-11T09:42:26.957Z","3.17.1":"2021-06-16T04:13:54.352Z","3.17.2":"2021-06-17T09:06:00.703Z","3.17.3":"2021-06-26T19:45:59.918Z","3.18.0":"2021-06-28T07:22:55.165Z","3.18.1":"2021-06-28T11:22:17.596Z","3.19.0":"2021-07-16T10:59:17.656Z","3.19.1":"2021-07-25T19:12:04.282Z","3.19.2":"2021-08-05T11:49:18.649Z","3.19.3":"2021-08-10T09:04:28.908Z","3.19.4":"2021-08-10T09:37:08.570Z","3.19.5":"2021-08-11T20:56:39.218Z","3.19.6":"2021-08-12T07:55:23.507Z","3.20.0":"2021-08-20T14:23:25.937Z","3.21.0":"2021-08-20T17:39:55.681Z","3.21.1":"2021-08-29T15:46:35.795Z","3.22.0":"2021-09-07T05:15:09.617Z","3.23.0":"2021-09-08T08:42:59.295Z","3.23.1":"2021-09-08T18:25:16.258Z","3.23.2":"2021-09-09T14:19:08.751Z","3.24.0":"2021-09-18T17:37:51.131Z","3.24.1":"2021-09-18T21:06:19.665Z","3.24.2":"2021-09-19T06:15:23.181Z","3.24.3":"2021-09-19T17:39:16.436Z","3.24.4":"2021-09-22T18:44:10.165Z","3.24.5":"2021-09-29T18:52:32.037Z","3.24.6":"2021-10-02T13:47:29.919Z","3.25.0":"2021-10-02T16:20:13.972Z","3.25.1":"2021-10-04T06:49:06.102Z","3.26.0":"2021-10-09T07:27:41.661Z","3.27.0":"2021-10-15T10:47:31.847Z","3.28.0":"2021-10-23T14:16:03.449Z","3.29.0":"2021-10-26T19:32:46.364Z","3.29.1":"2021-10-29T19:22:06.590Z","3.30.0":"2021-10-30T18:31:01.307Z","3.31.0":"2021-10-31T20:05:10.279Z","3.32.0":"2021-11-06T16:56:37.972Z","3.32.1":"2021-11-06T21:47:42.202Z","3.32.2":"2021-11-12T13:38:44.649Z","3.32.3":"2021-11-12T21:15:21.519Z","3.33.0":"2021-11-17T14:23:11.463Z","3.33.1":"2021-11-17T17:20:20.172Z","3.33.2":"2021-11-20T08:01:43.785Z","3.33.3":"2021-11-22T13:49:44.351Z","3.33.4":"2021-11-22T16:44:50.893Z","3.33.5":"2021-11-24T19:12:14.875Z","3.33.6":"2021-11-26T20:10:18.889Z","3.33.7":"2021-11-28T07:21:28.296Z","3.34.0":"2021-12-01T05:59:58.516Z","4.0.0-alpha.1":"2021-12-07T08:00:45.815Z","3.34.1":"2021-12-09T19:41:46.946Z","3.34.2":"2021-12-10T12:50:46.976Z","4.0.0-alpha.2":"2021-12-10T17:09:27.486Z","4.0.0-alpha.3":"2021-12-11T19:03:21.625Z","3.34.3":"2021-12-14T12:16:11.823Z","4.0.0-alpha.4":"2021-12-14T19:06:33.590Z","3.34.4":"2021-12-15T18:56:51.539Z","4.0.0-alpha.5":"2021-12-16T19:12:01.836Z","3.34.5":"2021-12-17T11:58:43.860Z","3.34.6":"2021-12-23T09:11:47.163Z","3.34.7":"2021-12-28T17:38:45.116Z","4.0.0-alpha.6":"2021-12-28T21:29:47.079Z","3.34.8":"2022-01-12T13:59:42.089Z","4.0.0-alpha.7":"2022-01-14T08:12:59.279Z","3.34.9":"2022-01-21T12:14:45.465Z","3.34.10":"2022-01-21T12:23:29.639Z","3.34.11":"2022-01-21T12:33:29.366Z","4.0.0-alpha.8":"2022-01-21T13:26:27.366Z","3.34.12":"2022-01-23T15:51:31.477Z","4.0.0-alpha.9":"2022-01-23T16:15:21.874Z","3.34.13":"2022-02-05T07:38:34.847Z","3.34.14":"2022-02-06T08:51:25.785Z","4.0.0-alpha.10":"2022-02-06T17:53:37.434Z","4.0.0-alpha.11":"2022-02-09T19:13:21.010Z","3.34.15":"2022-02-12T19:19:46.174Z","4.0.0-alpha.12":"2022-02-12T19:22:56.070Z","4.0.0-alpha.13":"2022-02-18T09:44:48.433Z","3.34.16":"2022-02-20T13:13:44.289Z","4.0.0-alpha.14":"2022-02-20T14:59:07.180Z","4.0.0-alpha.15":"2022-02-24T20:45:35.614Z","4.0.0-alpha.16":"2022-02-26T14:40:42.809Z","4.0.0-alpha.17":"2022-02-26T20:24:38.719Z","4.0.0-alpha.18":"2022-02-27T07:46:18.684Z","4.0.0-alpha.19":"2022-03-01T09:41:39.327Z","4.0.0-alpha.20":"2022-03-13T19:27:29.315Z","4.0.0-alpha.21":"2022-03-23T20:07:07.414Z","3.34.17":"2022-03-24T19:37:12.905Z","4.0.0-alpha.22":"2022-03-24T19:53:08.639Z","4.0.0-alpha.23":"2022-03-24T20:58:06.498Z","3.34.18":"2022-03-26T07:32:57.779Z","3.34.19":"2022-03-27T12:12:56.667Z","4.0.0-alpha.24":"2022-04-02T08:37:41.929Z","4.0.0-beta.1":"2022-04-02T11:47:03.040Z","4.0.0-beta.2":"2022-04-08T09:30:30.530Z","4.0.0-beta.3":"2022-04-12T04:56:19.051Z","3.34.20":"2022-04-15T19:35:16.162Z","3.35.0":"2022-04-17T18:49:39.055Z","3.36.0":"2022-04-21T12:25:07.898Z","3.37.0":"2022-04-21T16:14:59.074Z","4.0.0-beta.4":"2022-04-21T18:22:55.612Z","4.0.0-beta.5":"2022-04-21T18:32:45.967Z","3.38.0":"2022-04-22T07:51:34.170Z","4.0.0-beta.6":"2022-04-26T09:00:43.188Z","4.0.0-beta.7":"2022-04-26T15:11:46.548Z","3.38.1":"2022-05-01T20:48:01.170Z","4.0.0-beta.8":"2022-05-07T17:30:34.744Z","3.39.0":"2022-05-08T07:58:28.510Z","4.0.0-beta.9":"2022-05-08T08:10:05.460Z","4.0.0-beta.10":"2022-05-12T07:44:39.984Z","4.0.0-beta.11":"2022-05-14T07:25:51.897Z","4.0.0-beta.12":"2022-05-15T04:30:35.501Z","4.0.0-beta.13":"2022-05-21T09:37:31.904Z","4.0.0-beta.14":"2022-05-25T08:29:47.395Z","4.0.0-beta.15":"2022-05-25T16:10:02.676Z","3.39.1":"2022-05-29T18:17:29.651Z","4.0.0-beta.16":"2022-05-29T18:20:22.052Z","4.0.0-beta.17":"2022-05-30T06:40:45.564Z","4.0.0-beta.18":"2022-05-30T07:20:45.445Z","4.0.0-beta.19":"2022-05-30T07:38:27.430Z","4.0.0-beta.20":"2022-06-03T08:19:50.324Z","4.0.0-beta.21":"2022-06-05T15:21:25.993Z","4.0.0-beta.22":"2022-06-06T05:46:46.358Z","4.0.0-beta.23":"2022-06-06T07:32:59.213Z","3.39.2":"2022-07-15T18:29:21.775Z","4.0.0":"2022-07-18T19:04:40.992Z","3.39.3":"2023-01-25T19:44:56.696Z"},"repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-query.git"},"author":{"name":"tannerlinsley"},"license":"MIT","readmeFilename":"README.md","homepage":"https://github.com/tannerlinsley/react-query#readme","bugs":{"url":"https://github.com/tannerlinsley/react-query/issues"},"users":{"deerflow":true}}