{"_id":"@rest-hooks/core","_rev":"166-6ba4e40109cdd42d08819a9fafcaf105","name":"@rest-hooks/core","dist-tags":{"latest":"5.2.1","beta":"4.1.0-beta.0","next":"4.4.0-next.0"},"versions":{"1.0.0-beta.1":{"name":"@rest-hooks/core","version":"1.0.0-beta.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.1"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.3","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"b18f9c526b7ecb130579e5a113b31d931a1de99e","_id":"@rest-hooks/core@1.0.0-beta.1","_nodeVersion":"12.16.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-xiqRYCctoKj+QgjkorovVSudfgcO9aGXj8UpFrv6vcSF7FB0mTquSQmpCL7flneuuMVzDL25Ji+CLwGpz/snIQ==","shasum":"d69b888b741d524f6fe55b796f035406cb65f616","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.1.tgz","fileCount":183,"unpackedSize":618929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuyaPCRA9TVsSAnZWagAAUGsP/07tqxyVHdcqoMnpTu59\nvxMNc/oPHeMMe5KORT0K+i7B8bt2VoNHpRH09Xz90WfuWESmp/HLGYEM3+ab\no+i8Mdxxz3pfNNPY1vYTQvsIBZ00iWiwI/NsCy12o/Hhm49ZLsOoyCw3Qa+s\nGik9Cjk8SQLwEgrmrMrleHbiwvekFXsvaS3d6YqKYKkVaaB+9OAxbBqRMqmg\nUY1Lb9nEGJE4A6es45BZCgEIY3p8CL5ZP3FfgBh1QzWOjoJKxp/1quKGAh9S\n99oJkYCJzfrBnxifZ4Nc9VUaDnA2HF3np+8HfUFUmVKU2rYU0PVN6lPVWFeQ\nZmvUMFNcTncotCqrlyjFWTV2k/dm4tABa95cXIBI06Eh/Ypiw3CJ0juBgiEO\nMsTG/d0RWZfXDFbWQ36IVB7n9toKOcf86jNNYqpiQxPh4NfCWIxyiFWVUVbW\naxJJXOUjtmXTFwlBYk/TC8+mXf02lDCmrG8Yttv0vNEpa0op8yMOfrJ0V5Xn\neK8dY4oS8UFL3LokRciM/qY3h3A2PyqgLkiJGQc6xqJv7QLD+E0q9XTsGfyc\nsDs1AxkCMBLRvR69j0l1zYRb3OINpD3gQcLKnJqVfI3JZQL6Lj9EdiwoYSKN\nxTm1wuGpJKJfUUG9YQoB8dcWCHZWfFjQbXHWGdA4SJTlJDtJvmp//E5c+KO7\nId12\r\n=eKt7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHDv4znwWZnVHLImg2P/VzrLAUdEnvrvsE7orGUUeeoDAiB+PWUutOKv7s1R5bg0ure8Jb5SZcdmdOkYrgWFAabB8Q=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.1_1589323406676_0.36962092370898314"},"_hasShrinkwrap":false},"1.0.0-beta.2":{"name":"@rest-hooks/core","version":"1.0.0-beta.2","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.4","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"67ced603250ef2615be0ea985089b39f82e51707","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.2","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-bfAigLQwebGjOS+w0IziTy24J1PipfMCtwpMji5UQSl0M9oqWEnSQ2NVdi6HMreZ3lmCPHVKPQaOpgVFH7ArsA==","shasum":"943ad3692e41c35fdb941b2d79fd6aeb9a5df44a","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.2.tgz","fileCount":183,"unpackedSize":619760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu0zvCRA9TVsSAnZWagAA0CsP/RQsghrwP/VTSwBwlbX+\nSC2qa0d8MQCYAR6ygFbnTkxtEHGfpwm2cRi3HXb6CZN8u0laG3e+8cnv7V6w\nvDzdQBgPbd+v8oYoZd+abRS0GI5j03+QYWtemf/SAuldgqdc30oZ+5yOf5AA\ndKhqItUc0+odihJgp4Qc97P314OW4DHTwKXcEYh4UA8CIfpZW9cL/HTe7er4\nNpvlqbMET0c3RKP+8KAGpQhuHdY4rXcYJ6QR7yHDS5stfdnAlMVVdPK8W5mg\n6gPm/uWHlXrJ0kdqb4xBGaaziEUo0Xi+TH0PSNVm/+umW+QJoYvZcONQ81jl\nTAwFwIYc0RtuAkdHnCTA186A2Cx3BSP3MFfWx4s8buIROG2UN3Y/wL51bzF/\nH5jpSomsD9YT6c6o1TPNr6KEOHlTxTtww7DkTQgGVjAn3+sRNXuxhcX3c+hi\nNRfQMqDvK9Hrqx3VZQFvRfKxpfaAqdLsiDVWV/abZbf+q8Fsxsi8euOr2p61\nB676uRY6UABmuWLH6PehlJgkMhRFHEkqbDa7IW4FpPq01OsAXlmR9ASmo4Zy\nm6x3sqElqnQ4KnNL6xBUdsbjWSuxzMGCH+YfzVyTHJf6J4Lpub/332JlYGDv\n7kGUpEbWhgkLHYBBEXbdqDd7aDIfevYZTF8PyheV71UQQ0+m9sLnRNALdnNS\nMj8e\r\n=jzNs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBsW7Rt1h4yJIjbZ/sNcxf4ID/E7umQlzP3AByxKQNCfAiBItSFytx9tq6/D9fddEOJszLhG1zP3fImlBkFVNBgcBQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.2_1589333230812_0.5098910376439092"},"_hasShrinkwrap":false},"1.0.0-beta.3":{"name":"@rest-hooks/core","version":"1.0.0-beta.3","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.4","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"547a04a6b63f5561be02309ff8f9d9c03643993a","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.3","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-SDhV+3nEQY45Ob3JoqpU8F8cH/H/Ubtdq6w9tRRp1T8VeGzO7W0phx2FQqRF7FjHS6Becyx2EIq0+sXcEv/PFA==","shasum":"ed22eb0cc9906668661276939bcbbfda66723fba","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.3.tgz","fileCount":183,"unpackedSize":621405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu/jeCRA9TVsSAnZWagAAnAUQAJEfWP7l7NtjyU1R/L3U\n52QcZIlIZzwX5fi0y2WQP9c30I26BGdWgzS0Kkopp4VLMGZLsKBGoMKb6pEi\nPp3dVE0OCMtRaZNrQEP81Q2LXoqw6vAfbb5tvvnCmAywo2ma3pe0bWzmOfpQ\nGEBOWAZs6qWHB2bZUvQ2OVxPFwEQ9WEu+SLIp5b4Zrz4qGvnD0nTbaz1DMrv\nHk75va7kfFlSOX5uXCOUSya5MCv6ZprP9NX8JVmBH+oyt8SSB7mvUVZYXge7\nEIV5BW9KJvxzskhNuHwjg7HhNvJV+VSQtmjc4pNQaCRHJyJlDY+w028CKLUn\nxHJdVq5iGMbfg0Z9/hO5VRRcfe2vW7qVGvc6KTxdP6defbKf9IsbTFo79r/w\nHZnf9PmWSa+lNTYa62PkJVuocIjXFgDSKBQqpqG2q7KnCIepDUFlhdVKUlIC\nx6Wp+lZZQ+BQ4hoCcTw4jpPNJiwpbIDxhzi0niNT1TVwFlngtxN/+Dez/qmi\nWlBD9+MGoMJg2VPzeHUNQQGNZj1WBXuYVsC1hjWhHeqDpI8Z/4BIINjs5tJA\n33FrzGGmALAg5LZpfVdclKYnocJuMo6h/KbpH9bDx0C5tb2ExKGll1L1d+qj\nfl8iB9PwLIIhj2Qyup9aBuWYKpn+M4pxl5cMhnxik19B/4JddttsvoMvGSTa\nM1Mc\r\n=+Iex\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB0gjRDhInbJKvEzKYe7ftqFeD0ZklZIl3GN+M4LaZylAiEAyK4eEJmFsObbRbFwgnSer1nhnIHRRs4UDltwKuzntoI="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.3_1589377245951_0.010609268416657436"},"_hasShrinkwrap":false},"1.0.0-beta.4":{"name":"@rest-hooks/core","version":"1.0.0-beta.4","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.5","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3dfb110ce5a37dd836d1b1d0fab6a0299a780a0e","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.4","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-bSr+wYFtFG9kB7gjyqOxk/AF84qvms23q3nMMlZrqGjWZWy6gw76MP2MboML+Dojf5Fz6/izDritPKR/0C2lIQ==","shasum":"d0a5536ecb9397b9b3b0c69c95a2bbeb3618cd7a","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.4.tgz","fileCount":183,"unpackedSize":621609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevD6GCRA9TVsSAnZWagAAbyQP/3nDwMLO2WbgYigYNcam\nfXt1tLhAc6GGUXlgZQ5HJeTbuxyv6+xk9V8T7RHJx2UGORshxSS8Xo+f6BFr\nst8gFp9agYCcDVk0l8NDv3/gkgMfZX/9UcH92nYyfpM7/C6L+q6+kUjkpoMa\nf2GDbr5vZxaf0v7bxtG06+lBUBwHUMk9oSPrbRkap3GgqE8SiDqU9oKSPWH0\ni1p70YhXw+a+Tm2mKKCDP4osObR8XxNkUkN+7bfxNgQiSOO15J5AKWb/nLUZ\ni3mTIMPb8do8qcOtgNiXaBHKsCiZ9bQYD6DQmmQJ+InAz4QARvVnZGv8qF38\nhVdjkNZ/bDKc/Am+saHNRFmkVmGAohijAq7gz21YnyC29vw0xT4XXwxPn3EB\npdVhv2A5CEfuU4QiOr6Tq4FNE9v2LTvGpAlwex2ixSGm34znVvoXyYRZ98/O\nxhMzdhctn4FkB5PlxZa7sZIxVmFDagafxizFQ6jrgugCckKZBqkN90gqzLUd\nUpDPVG8kdxScrdwfq44cdJporBxXF9pPUCYrA2MfeIAUyRxrHlR5IzOXT/8o\nGHsWj5/EK6Kj7Iwsb9yJJRPxK3Oat1WGYOIrR3P/gxkuo+b2g12fFj9fAHqL\nRjC+5ZFLvWovtyluB11o/ut9DGZSQ/vOH8pr4XrQR/o+LgM1spHBzffvqdW2\n9GHI\r\n=KfHo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA65Fcf2L5Bf92V99uTsssqSVMnd2h2ERN5VC5ltqqbOAiA2rPSWUheXCUdmoMaScwYvFzk4EoutVkIN9om4pSuLzQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.4_1589395078141_0.22717725841256953"},"_hasShrinkwrap":false},"1.0.0-beta.5":{"name":"@rest-hooks/core","version":"1.0.0-beta.5","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.6","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"081abed3b41210c2f81e74cbaaeda943cf086e1f","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.5","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-KIKkZEEPwhtpOqHnyOrlMPWg/968rh5WqYXTsE8I7wvSrNtZuDhMUFhUfFs9RfIIlf6spO+7FYVO0m5CLpgDcQ==","shasum":"819b276dda1df8c50a792f5ba4bf83b627cfc82c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.5.tgz","fileCount":183,"unpackedSize":622044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevLF6CRA9TVsSAnZWagAAXLMP/0Yul1dECNTSYOdvojB9\nMDTcNlFXZriSH/YyDlRmvfdOyIjU5WI9e40O4rBrDWrDzVD4yOk3oIUqk0Mb\nK5QNggJV24bxiKnrdfxrPXsuBUk0ZHuuzFAwN3CuklQE4XzrQ6qKgzVfkNp+\ndx5ry5ZPvbq6O8YpG35MaP0Ty8T/BnaDpy1LeLYKn2liMX1ObvkfXCQclVqo\nHVmyuI4eNuH5IEgDp6oyNJN4Mv1KnMdm/iYWb3oe9fRJ0wRb5RpUBW534XOo\na2UUadhcJmaUQYrAiF/6GlIHX+dw4HerO1AH8u9im8eHowCHbmVuKJauArlu\nPdS1htSCnTxT9cnoFT8ZyczwWixm7el6Bsok6YIJC5KqQ99amaHh/g5IPpIw\nlW/0SN2WzoH9cfZI9PY8LuGIjvEOXq4Qzip6kc9swZOoLUgUjff084P7vRPH\nvBqWhM7BXgHI8m3RY1vGJPODmpW0N5FyVP2VptRrhFc/sx8Cs7OopjsnKqvf\njWPbNIq1TneIKxNkl1oiY3W2rBYyk0vTtE6u3K4QyU28McBdD0SMGzFLqAjU\nKcZ9DPrSMzAcngmVW/7jbiT5TjiOD0ejEunejugI8Rvy5DTAaaAmY4EUPuzb\ntlNks7nhJPehDQUDo64QaWXTaYe/t4EBsVeJPbvbJmRG7oq1PfKcGnk5hkju\nPptd\r\n=k6XV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkxRJGQ/dYFLUXnSbZ9iEOVLyXXc7kjY7wkbW44HK+GwIgSmfSPnDJMXwLw5J0ZvH2k4VMp4l9H221nPNnhH4/vhE="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.5_1589424505981_0.8456432412563375"},"_hasShrinkwrap":false},"1.0.0-beta.6":{"name":"@rest-hooks/core","version":"1.0.0-beta.6","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.7","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"d0cc5c3dd34a3092583ea9dbb8f8fbbe9c939ad2","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.6","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-HLjsCu6VEnW3PUgaqtJoNBIsY3xaXMyGpCmb475tNTGRwbsD7aiGcpI4qnEENQ6LDIxlcbaK+Sk40iOzeq+BKA==","shasum":"5e0a4e21c90b05cc4f3d2fd30434fab5487ae1dd","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.6.tgz","fileCount":183,"unpackedSize":624494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexBZsCRA9TVsSAnZWagAA/DYP/RrxLMObpBGf3Do2qg8k\n2S168acldVm+wTv6G1nB0wVJAFFiZL/bcEkSW5narF1DTv7bHi3ihILOh1Hw\nRqnLB/aydk+zFC2+3zDG8w/vgM6ickHsB1Zmimy/gJASbq12R/zrCXBG8UOs\nus4G8GUiMhprqGXIJJFB8iBTLgoOMWo14PORVY4pgVGe752Z2vqzwzJQwIUt\nzLUz86pBVNSxhvPx53eRW/SAiODxjjNnHo+E9SOAklCxit4N52osO/pM3ekE\n0a/oCNQ+JZwY5IdYLwkUux0apCvsNnd1BgBxzrFtYx/q/H6tHBuJx+qUE5Xm\n1jWJzACS9euXJV8y7I6R0bexcLpOPZXQoK0/GjeLAgEbcGr1DnJsOvg8iGBK\n8CrnKoJJK2e1+lLYr2Du1NWDi41+XZvqr3osDk7jBSwSjgWtcoP8NKWLgFia\npFjTgVdSyjXSgShYN5KHbibD5rqOVkSGeGNK3K1d3EUa1ThJC90Cyd0pFaGB\n7zxYG+Ks5vMwchaFed3cxKOhQEh9abuAVs2xUEqtLdp/Qtorx0xz95cyj978\nsOnIETbjDMrABkAjgOPLRcfb4xaDg3AY8DlfIftglIbm8O76il5RFSR74yKd\nWe33mvTeN+2eO1zNYz6SnCcK/Vq8CHJQMwgWpaifL8T4aybSrSMt8vcYBaZ6\nWf4V\r\n=hJ9+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7+uI81RQnbZLC3XjidLLhgOllsx2XyMzV73W0KKzUQAIgErzlWCWreDnKujvSUMNXirtIukBDd7KD24mYxJ1uC7U="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.6_1589909100286_0.22445276709031958"},"_hasShrinkwrap":false},"1.0.0-beta.7":{"name":"@rest-hooks/core","version":"1.0.0-beta.7","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.8","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"5a155052d4208ac82c54084d7cd7cb3d967bce1c","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.7","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-ycAqJbb1c3zxvKITinAadrdQ1v5DtX8HNK8PsFq+aTPBcZbxT9/0MMstPncITBwVnb3y7/EaJ7J1j5vfsmWgPQ==","shasum":"e8676b9f1c59e9fcb4b847116c2567699dcfdd06","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.7.tgz","fileCount":183,"unpackedSize":624698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexC+VCRA9TVsSAnZWagAAtVwP/iP421s+tkSGjbZEtokG\n9a+uIAm/Nwi1fyKMKQONFpLFcJZPUhZQ2HZPPZjQXfnVWlNYDrUrgOOMbUx+\nICE6g4nFYVlvZokRexGSq/gGjEVmyiQFEL8YDO5sfcGR3FfLyOUUJiFJwaoc\nP8ZU2xxaVhHj1YuSrhZ5vW3bzQbvfjNU4uKdb1UMWWY1E2xmnToIknwWyG3d\nRzK+3NUfjN/1gzfr3Mjr1CM3mHHfEA+NsHO62ZDRPitB5ZBlHb43bXQbV23g\nLwO/HxWLrl1uXlpCpUVqrVTehChL49XWAVQpJ3DyZbt5Pv5g/hrSCWMEGR1z\n20PCzdnTXW7BOkU1QhbMdCC/shwjAjozO6GfrRQ5ZQllV5gNEoOliVy0v6wz\ns3ocnx83iCXowejGu/FmND5yId2D7myoUAkiwPIcsGNfbNOJLTMnOwDQAuNe\nnLrKjVm16ncZjykE5jlFldJuhXCtSa1JXZQLfRdQlt5ZD3CXZYRP1OKgpGmJ\n0SCHarJQ/Gqg+LMA2lfiZkCKc08s1h5nP3R1fmhRPa2ytnfLPhbnG6RPJg8E\nxXiBmxyIpnxpdENTigvc+NxnZY3xzOFyMuyaXocTyMFX9a5/J/sO8og8gEXk\nIuBGRSx5sobtK82eXU6mms4I3CgdCF846djaVADc+eHBtp8OlQ7XwnkaXhha\nLLzK\r\n=/UWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnhP3ZIpEWmzSUJdP2QSM2hl70vc+qeWCPTwKrc/LkPAiAh2ZS7LXHu+poSFueAxAupw2QBjZTlWQ3RJZ02oSn9MA=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.7_1589915541020_0.9563958440929083"},"_hasShrinkwrap":false},"1.0.0-beta.8":{"name":"@rest-hooks/core","version":"1.0.0-beta.8","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.9","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"78eb3293bbb8123fa8d6f0b910272e3894a452f7","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.8","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-U2ZzF27kuErIL8ZuMLIp9akyR6oohkMtzQQ/zaVca4AQ1jFiIhR7YTsPchsaOQLxaBb3qgOqGWn7HRCYbpGAQA==","shasum":"e17f7ef1b1ddb37cd1ee0b79ce8dfb9d810d76a9","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.8.tgz","fileCount":183,"unpackedSize":624902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexFttCRA9TVsSAnZWagAADOgP+QGZMnFSdjmNOC3Bz2m2\n/wa+Y6dp/ferJbVmQ6V1Maq+lMepAt1rlzN++aaEB+nX100SjySydIn5x1l+\nQiMuNK2ISQKqZv9w4MZqADNa+FOWRTrzrwf5+1vMFs2Kq+lFVyiWI2zk033E\n2JD4J3xIZafK9nO3gG0iCMv3nV/EKJw58ry/9RTVosq963V0WbGqoEIILs3c\ndUFbPX9IW0i5dW/y69ns1ReZycTMkJagfpRyiJlAWanSf3Pieca3z1OXFIPR\ngag5Ks3JIiwFheYrGs9gbeA8Ro032pTfAfXyREowOw6TaRhd1KFwsogJnXHd\n3v6S3xDjV1LXAOITR7vBJFPzfR9jssbU6eErnScANoWsXSEH5nrLFFwu5pYP\nrkBOvZeojFf72t+eH2MbKlg1aJ5ITWP7v3tpIwwhmnBiRZ/NWHDorJySo4zs\n9e5qvkUvppT/vKwv4GebB7TAxe8WkrztDkFiOFX9tKKwpGfwlgMCfv7aKCGc\nKyCy2QI9QW6D7fPWMw7iMwpZ4u4l1/56yJUlxcHwXsmpyGkiB64DHgK0qGrO\nq+YKSxiKBNr0x+j7CoyzwoDU7DVlGOFUxThbsEwxBnJf02vko7362ttn4Sjp\nM8ixOUydXyDDk0nPLcSlIVaL5DBIYPqpa5IJpV3y0apCLc0ytjoLBjajX0YK\n/Or7\r\n=GqDd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDwDmywcV5s+MwU5cGB7N3vTDLEcO/W5AJgdZa5y+mAAiAfOY55NIrvBZe2eVSuNBkvnR4j4I6mAASSxU7aVd1W+w=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.8_1589926764623_0.034040609396682076"},"_hasShrinkwrap":false},"1.0.0-beta.9":{"name":"@rest-hooks/core","version":"1.0.0-beta.9","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.10","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"4bcd3a24cf20d69a9cb2705e74133490b07ff567","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.9","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-XvqB29+3/+0masGasGLfHCHC6LXXfS+pU+kXGnQNQEx5bATXJa5kqOdrK3YouCKInweD+Kms1OCq9ATpJXk1sw==","shasum":"c382a2dcfd86ba5df8f8feec39943d2b4c57884f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.9.tgz","fileCount":184,"unpackedSize":630442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaJFCRA9TVsSAnZWagAA4xYP/0QQ4Op3uaGRXYeBKUyA\n6HtywqTLsrR6Ve6EnsRI7E8tsmqdwBgBiUH4kWqxjzRGsA8f51ht6Jr0SeTr\n1Hb5hVg0jTVieRLi1s+6Nv5teZG8D5JCx3kZ7qV54Ur2rxWx+N3CpMTAdA+U\ngIFn56GjfK+7JmjxroAOzcLooCu1rmziLkD2UBcOau5lMPU7SAvmp/zN5VaB\nhYn9FJUBAHr095uKpR5uslai/xutbHESX7RH21TKeMCY0h/djck0z14RKJzi\naXTNCofIcdzzKnpgtU+W8RNEmm0VrdGmdCVqP75RXObxtIYQ+z/puXaMjm7s\n8FKFlfXwt0Q/+grB0RiX82NoNpKIxiGUdzF0N4Vs7GiD2AbVrE05dS05yHYW\n7T2lavvv0Jzd9ccwGqAzXyb7MDYKP6NfSyp4QumzLP5UQgQSS2t9AOuYmUhN\nydTKYa9NVSY3geYxaV6o/RzTvxKgl7jNUtLCaqSlSZmvUN15EF9bj6345JT8\n2RCA9os3DNRMUiHqne/idUQvbunlZlI8+xsByqi1jgIo/Gvk0enHSeEGpqph\nh2VBff53LZE9oKB0vU2b0biysQwKzvw26et1IMal/pu/JKmjnMaWGydgxmU2\nX4ZQA5EfB6EnoH1d1AL/LjeqM7oPSj7Bn9YtYMc8E1nAqZtwAfU8mNRWUodR\nx+yr\r\n=g25I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICEz0sy3G1O7SAlk60K9+LKytDfzI296iL0ysCouid1HAiBYZNPQmP7+YEq8JxgWWJKxKAZ8LHUj0SL4J5E0+HgxkQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.9_1590010436091_0.26159512614346325"},"_hasShrinkwrap":false},"1.0.0-beta.10":{"name":"@rest-hooks/core","version":"1.0.0-beta.10","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.10","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"d8d5b670364f61051fc410a022b76d0e66667877","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.10","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-E1JXm+kDUYrun+YGjOnWQldX3rk07VU2JEnws/G4+d6xhiOOZ9vsEUfhCqi2CHQJd4/lUe47DwaFC3oCQjIEFQ==","shasum":"981bb60603835e4b3845277c302f927d996b9acd","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.10.tgz","fileCount":184,"unpackedSize":630844,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaWlCRA9TVsSAnZWagAAk6QP/RxYwO8ZEM94gkxm8pCM\nByJcqppKfV5vIPbMGYt4hJlesntqbdGr8UZ2YF2ZMShfurnw2dim/JJx5UO/\n8CmonFOKCA029j8+nY9WWmwZV+Zp+RPHcZJRBsGB72/Bk+xUe/bHpNtnWmSc\n2iW9WMI4CbNb8WYHbQ6944s/MxFeDbJ0lWt4FrY2LYWh3rV0pGfszE/Dk2ls\nIFXubszL7uUEsHH/0+yfIQxtyfsknPX2kNG0aBAMWjc9iTzoBmRQVTiNQWfL\nJatH3694QhX5nN53XerxCDDqLElO6D45U+cxmvWx+oc/dXIdp+Xw2A12jnbj\n7Myn1llqHQ3+D3/pO4CA+GV/7rieGZBpo0LfKDd0CNFEc3qloSlatx6m0o6/\nN+/pJT9JCSouhro+HxE5iy+igZYl6mcLTjhrfkX20FztnZW9/2tDccsRbWiy\nW2clKdOsd/Jn40ZbbIsxEiUNDAXi0IVt1hqjXHQrARHL5DCiDGth2Fh3lqsM\n17AqwONzHKwQO6si5rUZSMeAIzjMU9jYCXeoTQTMG9yFW+oCO75v/DkmkwJm\n9q+VrUlXumC3YlX8x4CuP1o8o95WofMpVLrSWS8HtEyJflM2sNV0zgZNevH1\ngOsN84dj4N0IVFklj6CBflvOcySOT7kROllM912WWe/2jFydn1IsKiio3/iI\nOuSn\r\n=3GWE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnWjrvGlBBXyL/WuHWBVLGEuR817sfrDJDRQQGIZHjrAiAFjCWMoqUHY3WPUDNNegln6Fsk1MJLGrFqj8Z6bR5c4w=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.10_1590011300606_0.08246221770210482"},"_hasShrinkwrap":false},"1.0.0-beta.11":{"name":"@rest-hooks/core","version":"1.0.0-beta.11","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.10","@rest-hooks/use-enhanced-reducer":"^1.0.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"0e1ea88d93ce15e8bc9e49d915145cb143546706","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass ArticleResource extends Resource {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n  static urlRoot = '/articles/';\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleResource.detailShape(), { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleResource.updateShape());\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceResource.detailShape(), { symbol });\nuseSubscription(PriceResource.detailShape(), { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.11","_nodeVersion":"12.16.0","_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (linux)","dist":{"integrity":"sha512-jZDHAjcpJOkH7NpbTMqTNkuezuy1rNyGWjfspSITyJ4SyWV2rGBiqsvAqCnCZ1qWmltGgqvYoV/B4+qdV9PmaQ==","shasum":"1bfc783fc76ae01ee802863bc4dfe1cc83755cb7","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.11.tgz","fileCount":184,"unpackedSize":631096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexak7CRA9TVsSAnZWagAAfK8P/jai5BkVWktQFOHRitXZ\nS3amdIbtXdjSJwynYjVb1qbNtSfm7zSgqh/2pSkPiJ1NgHA7ZAOJIUe785PB\nktvEsCMZoHmkV/pjuKV+JQuE1sXvcar8wY1MJhcHnIq5W8klr5vIosaDu/Fd\nkcI2QvjGcniiob+1D3V5dbM8LsIVXib1OPVHRA1Ood2Pi79PbHyREHaOKSLC\nBBi65d84oe5ukkcqTMIZJ7cxlHlKYc80EXQ1DkQJukzFYiBRz9FLiifeYE+X\n8q4wNQxXUDNTNYJ1BVxwYJ+DdcssjGKQSWfy7Nt/Ls3592m24GLP3v2TjVdO\n9Ok20qJaoaeodkc+FeoOdsrGVGCLte7bY5DxElk/NAQ7fH3zL54pkDhF7+U1\n9RoM3ZHZWHJRVRR8OFNS4CrZQbGj+RmDvwu/6mVxF2jIS0rxOMqn23QPmX/0\nQlpmmlj5naobUsZDZtECX0DDx1VYByKVNcN4KQJnrvOOCplp75AQS42l4tRy\nTugHwQs8YZG0RTL/DCDuPtRpVtpwPKnDG8Xen7pmxPwJjSTbCwyTEVyXGmBa\nbZ5eButsRJvHBEx9Swxrkld0bZiNAnWYlfkaunvlLw3w/29T+I+xH0KwL+4C\n0lhPSXUUBCq/SNJ2Ce71N9GDZaMN4NBFRJA6Bm0JgWIVU5cHkVdHrfXjMS4s\nSPpZ\r\n=CRoB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCulsvzmieA0tY5ZIUt1qCSrmYXlyBJuEFYvmYvj0Cz7AIgaFc6fbPx25pwMQf3TcuRV6+7aX/EKfEDQRE7JBy4tvU="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.11_1590012218432_0.9659301326850427"},"_hasShrinkwrap":false},"1.0.0-beta.12":{"name":"@rest-hooks/core","version":"1.0.0-beta.12","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.11","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"_id":"@rest-hooks/core@1.0.0-beta.12","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-E7J/zLYMXuzFGIfSdZr2lu8Wn8am0SxywJlu7GTg2ggwHx+LYcEbcpgGZ6Y3tV7sgbwPujsAg860kzF3VCN2/g==","shasum":"2540c77424afb0a88ee1e1759d7161a7dbd62424","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.12.tgz","fileCount":188,"unpackedSize":652525,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3CBvCRA9TVsSAnZWagAAcAUP/1nPRAv75ohv5jnIOaGC\njLL2TO94PB7DwPG4YKYkj9KSSIpdyiiGx6rBmtu+oV4q5fXyGdQYh8YzDPaT\nvUwLgOXY8TY0JMZ2dT56Xt5YVySfmcDfNYbOG3oOTmzqet4PehUEvrpPTXfj\nRu0tSfUm5ZbF7Pa5EQdg4TFjdUX8/XuSJHT+288KfnR7yKPFaXJrK/2M4Jsh\n3boJr4ezyKr2JckCJZgn5mcxZL+9AsuhXKTCZ/OXK0J/46trOIz5sIZGeRdL\n7IQzDySJ1b3lTcdj8sE3otjz22CX3ENeRKWc2x02ExhIBJe7+A1pGNUuQ+UJ\nh//KDvtuBUvWUF22LesYroODtUoj3MVV54sLko29sWuvE43+GiC4H1jFGa8O\nqzbw01O7QJZezoKdtgHMvbihcrw3ikbuXuF9flV78Eq82wb5xvD9bWLa5TLb\nYhKl8dNzzIW0PCYEUODK+jDj+C994zSSoGfSXBiq9omag6YZ0WVzI3b6s75L\nemMkyH6DMj28HnmlAnfqPqK5zwrx2jlfXnAGgPui86oJ0IlRYozCgTPR5YVX\nDQ817MDHuXAHB6VmUoJ51czIL0WIN1mODzNhQPdUT8qqXyIjvpfz19Gzk2aH\nmUu0N5KdcNyNi2j7BQ/sIh1fYzFqaElDJitw/8ofPX7VGk61oyxB9m770LHV\nZKMM\r\n=vtTu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClqpBC6APyk5AOp9XSQFDdfBFStMhD6A04Z4yYDemT4QIhANEWbwOeGhWitSziI2HYRcA19e74N4qZMaM8rKvmJxSm"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.12_1591484526351_0.15808310875893894"},"_hasShrinkwrap":false},"1.0.0-beta.13":{"name":"@rest-hooks/core","version":"1.0.0-beta.13","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.11","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"86936a899f686df0fe8bb2f670bf12293e0d0224","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.13","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.0/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-KoDgO+CAZKMwfKSgmSSN6o2dchDTc44bFe8W57+24CgbEXWmfFgh2Gw3i9MJIpLb4jacHBSTMvSrKTEQPnztMQ==","shasum":"8a8b7dc43f513d6132b572fd69d6ef424a3c2c22","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.13.tgz","fileCount":188,"unpackedSize":652696,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3qqECRA9TVsSAnZWagAAaIUQAJ7/NIsEb0bjGJ6XVLfH\n2HHp7jHg29+GiKoiZDyaCTJqH0Ir+LDNOb3afoZTCcs2TNZCtJDrlkoXGZEb\nSq5eoTCQiTxlhMGBEZwT3UTkPdBXqC8zAVwikL1PrwoOX44nzrbyZdTtD2Da\n7NfrCGszFq8tO9BK0qJAYG6JiXQXDSQc0LRXx5ot2E/ymaaxHxRjHbDmdd6G\nB3bnmkDuK1BZxt59PRm+IawGiIdBykwy7UhKrQDXmkouRD+T3pOQYs0uMjw0\nVnY/5Je8vVdR182p9Z3Aw0Z05ZCXe3TYfd11IdWBLVuVNdwNMui5f80FW5re\nVIylviqCG8H4TeqQLuM9gYCawGhY4lRN3Yeiukta6gu1K1cazxRPmlJ5nxSj\ndsRyf590rMepvgePcoeJBK6pK9w6D3MxJEKgpcqdMMK5VIa9GHhLS5deY9zz\ngRahT+9L3n3EP40+wLVPvRkp0Zb42IRBApjY9aJlAC3q8Y5hiSMQSWlBEW5g\n7PQkuK+0l67T4x/1KRgpm46nlMYxqcoaT2VAFJXEcOgqDqY5SUS6bZvjgpC9\n9FeYViit1tEU//uujdX9lUxr4q/h52c83LAv8+uT8bkMz8KmKzhB9zJX/40J\nRXZFNx6XtYq94aub8y2Mr01yT/mJAHlZ5YJEm4+DJYaLzzBBXJultjWS4SuQ\njm5e\r\n=3gIe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdzLZOQ46Z7dNPrPbA6qioe0Ak2dM/YM2Ej4HgYSYXdwIhAMDC03HDG1t9SqalnkTXqpmO7l9MIEQvmU087BPBXqhm"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.13_1591650947512_0.2492832947905741"},"_hasShrinkwrap":false},"1.0.0-beta.14":{"name":"@rest-hooks/core","version":"1.0.0-beta.14","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.11","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"8c3b13e4bebb8641c467e2bb61e87d66f36da3d9","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.14","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.0/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-ktvixeFMPokXaeP8h+12EVIUHQ344omd/ohTEK5/8G0VIQ4uXVeB9NAqYAsHN+2AZ1yAr2YJzeU9Kz8DanWqIA==","shasum":"00e76df0722a77232e25f82fbff844b410a05439","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.14.tgz","fileCount":188,"unpackedSize":663356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3z2bCRA9TVsSAnZWagAAEhYP/2iB8qOnod4bTpa+XHwg\nAWj2V+z83Ryet7vljxZT+U5Pu7IdirBOhgJayQ2ob/8mULK2hqMZHeOIjWKE\njWpI9BlE0WzB40ldnwSrkOh5zWoba1y0knyrVZIuSlAWu3IAzVT8yOEi2yu4\nHqBzYA5y/OpwkSlg2LHREM8jdYcb6hX/ywFdq47NMPNqUTtyCM8blnd1nzkH\nh533LuSu+pqCxNt4lvYWnWTdHYeOJg8ftGFQwBNtHHstRW85XNZipj3K1yuA\nyPk8KsbY4YOziA62EGbrRYmB/MU79EMlY1wVHDI/pV+DM/ILe0XMq6HpnRLZ\ncwaqde9MOekKo71PvI8OXs5L6FoPVs49I3A3GoMH68bhW2sX/Vyf512ArHbo\nAI+/zxKz6/I9P1SF42vEF6VRTfmnOVu+biyD2ZGDfLZXFhFtPsQYINq+a4ME\nwZeLMAEQODSJSrE6dBVmSbHA3ugzl6Ab3jkeXaXqMGDgsgobrV2Z/SQ9USLp\nExm7NcgLXUqtIEnDyU5bpWjnvby/j4tP3jAXZWTAOFuKAYrGTlMp2+tfvZLe\nbmi8tLax1mx9xjBqQSeoT1w7SRbRqLfEpJMrZxdvtfcSMq+dubS2MUxxS6MZ\nE8Ij9Tz5spkvHTPAZ7/W5oO0HxR6Aop/MEqWEa1NJQFJuvhrYiNu+P/vrS7W\n9OIS\r\n=zXOq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAw0Ngoid6AyihLhhr+Z1TJRTQ5FbLMuftrFTSzgolPUAiEAwY5WVaP3plK4vM7mxQ0OgCuFtsAlHxnkXOy0xq1Snwc="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.14_1591688602373_0.5668290185218838"},"_hasShrinkwrap":false},"1.0.0-beta.15":{"name":"@rest-hooks/core","version":"1.0.0-beta.15","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-beta.12","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"719ddbe9638d7bf0e8fd3d1da113202ac6aaa059","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-beta.15","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-rD/Ic0/h0y2wDVtruu8thCMrjmeC+jSPDzETrCMkam69K4MP16v8W5zPtY0zdJM7ZoNDmoWt3ssO3FfPaJBhBQ==","shasum":"25f5c383b59d8d1f77961b8844f0ef35e3a99198","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-beta.15.tgz","fileCount":188,"unpackedSize":664934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5TNZCRA9TVsSAnZWagAARVwQAKIRhCvuzy7hppabR/ee\nIVpqnADFuwax+kdCv+cicjsFCSebyJCoNmznGbUgdgix+UM73vjypB0sdO4D\nWh/ZWqb/2Wj5v71S5yOgikWfGyjCOZzJz0uPSzGH+1r5edxfBtu+24J/IugG\ni48/yRqOFsWxI6kajJWnfuXR3tzUaGhTa8y3eAENyrLQWqIndqklnuQ3s0uH\nAiyKj5sNjTgdvlx9dm/1ujSWwY5NJE4mpC74qfWLww9JES1vmcoP0mHLEox7\nzoTZC8rFDd3/fnz1SS5GJ0AUlYMrccmtch4O/IClntLP6agMmjdB+jyEVgNZ\ndozZBZ1OiT3PmlHNYXBya6H4PZgWk3WnFzjAcjJaszJ4N2QiGs4RN2FkW3k+\nI5BWOk7L3Dw/UXWlOHHB32CaEIUFiRYA4V2m+7wXRneSlE7inPU3sG5fc9Rn\nkb0s/zQr2Js/TPp1ilPnUZZalp1A/c+PdYfFBqwTEWx/Jk4h27yJ1tgi7vHX\n6Onof71Y3mQ37qVQgwRrZudIq98LOQJO3lbg+RWUDB8MhuJajUYn/pBu5u/8\n80pwRSGMeadyhnvLAQr5v1dmDb3e3zWDj2dfvTPNokkICR8xlgcy7iTOGiox\nlnBqJGbglZEUopzW1PM4eOj11lcuoKziojUuHEzMeEvvcV7Fr763gryVRqGJ\nIMdf\r\n=UgxG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWi6/j1gXboYHs53N1JLY8Ky4mnaU2PdrnnZ+CcVGaBQIhAMUJeQSVrZQbQkhqMPB9mt5LcCNXG1cfcoiHwXEXRYFC"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-beta.15_1592079193404_0.8210012940510307"},"_hasShrinkwrap":false},"1.0.0-gamma.0":{"name":"@rest-hooks/core","version":"1.0.0-gamma.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-gamma.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"a113dc269751e02516659d2b187e41496aad3a42","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-gamma.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-iQj+iq7NSjYNwK4N353Qdo//nS071mwgRF9X3WABT9p6OjRW7S2JMFQjZV2oO0SUTnIWa19r0SphyA83mK+h1w==","shasum":"3ea61c1620e5b8049b257bf0207aa7da3df5bca0","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-gamma.0.tgz","fileCount":188,"unpackedSize":665027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe5VYJCRA9TVsSAnZWagAASzMP+QCmpICIMOx6/99omAoR\npeXi53HwkeJ6+AKqDj8pKmbD/fHVcvzqrneLh8YCufaJOQRKTGRspZhYsXNV\n/yAA3GL2a74ddgbbixHARNzUD/PxpF3ybJMocsQZzVgCIHYWLv14wvLLXIWt\nRFrD0p9ozc2MX823SrRnVeyh34Ir5TA45/q0pDV4DaoiXRrlLprIUv5m7Lkn\n/58zOCFfnZQqPZRji9+Sfgg/acjrtTtcdCeaouFZ17U7MJEf91w7nEUnHtV1\n8I2JMd1+i2soAoVhZlUcIKBtaFegsHXUlreekiWV4PsXKLcO6IJF7Ill9dTw\n4wAUHxu0qE8m6OviPNOoK756qn74yV3ul4v3ej+M80VMrVD0shJlTi+jN91e\nPEfx8DtjRY7aXYqn6U5pD8mXHGQdHf79QodN8JONFrb7BLv0x9Bkz0FazcOV\n3z2z94dYw6Dn43B+NTVGKJiVlhOVdG4+3U3wA7JiKY10oH4qRa2nNi75NJcq\nU+Qg18PNTFrkIstgHFSH5ypUsQyNbxRVl1ZEHOAHQLSBz0Pq7LXTHzmwb0z+\n9a5cr3OfMgCVdgROU+XIG4c7SYvfH74ulbdaxanCgkXFMHCV3s3GTSyGrFwi\n5q6BggA8udaw3UDx5EicTpYU7HSeOSr++qNK3y59tvYBdCgdvnKwYXHgMaLy\nMHx6\r\n=sDNg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEhehkMBOvNNEvNQSSf/ZR+dELyci12jgf5+8uvxd8tqAiBcr1B1xJKQxmgZjVngiccjieVSo8+iwRurlFQ2cjOXpA=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-gamma.0_1592088073373_0.0827366112743142"},"_hasShrinkwrap":false},"1.0.0-delta.0":{"name":"@rest-hooks/core","version":"1.0.0-delta.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/normalizr":"^6.0.0-delta.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"28b3290f8b68169f56b6a14fd7653bea8794bd40","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-delta.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-7lT1yex0dhSxXruW5bfe7fIhHIT+0OjVsGZCSkEXG+lUgSn8uMkRofQL+g69gq6mQb5JqxcVpK9iLv4Lk9ZWmQ==","shasum":"ed0ea5e3c5ec2bda084cd180b1e35607e1d911d4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-delta.0.tgz","fileCount":184,"unpackedSize":670430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBjI4CRA9TVsSAnZWagAAEGwP/i4aT6qQHFIdCNDNp95m\nMp81F7tBNPPCUoQ6CEj4Iighx5Z1hRS5LvaIRXzOp4jkbeq2v2VQTScI5LcU\nex6vY0r3W+PZ9NsIevY8VlK/cpUo4tYa4korrSjWXq0JxNu3olvBnrtkDtT9\nyubtvzc/G5Z9/vpVAtSWGEfoRuZYzOqx6TsfcSZ26ZSd57Xirxcgm99U/oKL\nwx9Ip5jumLPcMRlh8E/5f++1QwF/ZRJA95gM6d5d/N5TejRZnWcm0LFtxmKD\nqsvUn2ILqCYlR3njXElVv07JWfYSFJV4KLyxxyHha1kt/2SUCo8RoQSS+i0Q\nKv44YEohdOzB3maZOtwhZfs4UgVcesM3Nti9T+LRSWsSzTpfqRdLNqhC1JZL\nEf+AAv0AgmVc+Ppd0noLv1/Ap+i/3s21sqAkIPym10/FXJ6SCmz9xEVKK8A/\n+ZbTU7LcQy7QO5n0lFW5/s45TVJjfhQt3nVK0DHLbrkoEblUZTcspkeEnG/f\nTOBUqwvB9kRonxrecX7uiVjUODfdoyX02JTZVEOd5OXjjo/tUdIPUZv7XFU0\n+h4XxlgeA4+EaLzrzbO0/4BK1BhUXKRLjHQX+BJUihnCy3hm2hSHtnP9SscD\nYwvQ6jx31e1LNC7lSa1JB41P2Fftj0SBajgSVRrE+aBUW2lMGUuzZnCOQ/8w\nmbF+\r\n=bfuX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAoO6SUYoQbGttld5/k8rKRe3KnsxtbNqFvTIYb3ZoPPAiAnX79Rcp6H+cS6phxNnfbkP4crF43+yG3psu3k0y0BMQ=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-delta.0_1594241591829_0.5124768358153191"},"_hasShrinkwrap":false},"1.0.0-h.0":{"name":"@rest-hooks/core","version":"1.0.0-h.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-h.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c0fb0d84e41cf81ee78840532645b3b6f17753e0","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: number | undefined = undefined;\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleEndpoint = {\n  fetch: async ({ id }: { id: string }) => {\n    return await (await fetch(`http://test.com/articles/${id}`)).json();\n  },\n  getFetchKey({ id }: { id: string }) {\n    return `GET /articles/${userId}`;\n  },\n  schema: Article,\n  type: 'read' as const,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleEndpoint, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleEndpoint);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceEndpoint, { symbol });\nuseSubscription(PriceEndpoint, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-h.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-bgSaHovWnQ4M0kPFg9g8uxyLA3V6a4Uxo4s8mm6e1YHzDkHkJ4pDhbcWj4D2GpiznTb6hLtxtL/hztIAc+k/Ag==","shasum":"8c7628ca215c9bdf6a405e0aa02a5f0c0e54e6d0","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-h.0.tgz","fileCount":184,"unpackedSize":673202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDLboCRA9TVsSAnZWagAAvGMP/2HoMiN+E298Q+RUrDko\n4qcOM/Bg8soRzMWsShk1021sdi731alfXlSijmtyzkBrKdzKaEjJurJ8ybP7\nRet/4lFmC8gCiS09Bh72bXr//lVGIF4pqcZNTumv8V9DXHF3wxmC6dn/zp3q\nj7CxYDsK/hND658y9VwLimZxwka9BKw4h+/ffAvchM8CI0fuYabvN4buONxq\nOrehtalATqcF2rQsNFBgBQgTHlDOH5mYa47utoCQIOeR5F8Q0eqcK5HArWiS\nBELd4XLe97V0G6hrK+WNHiDYDIkqWopTNvS8AY3z/NNZqyt5bg9FMlPQ6WHN\nr/PREhqmiDhybOPFe1HZ3AD3liZw/Y0ExK7abQl+VK2vqVDbgJfvlJSkwjSB\nKdibMxb86RdiyCYxT9stNEwvNvSZXNMeONUH6wccBzUe/0+V+/Cdr+JcPGWk\nYESG/Zz9P8tc5UmUYb5vFIo+ll4C7QqFCUcrl2pbHF1fxwETw3P/GVfJ5z7Y\nVWAdP4S0AcjEoAvl9DmDtWeormaa3GpK+qUzsLmOItx77O4vAAKkz4KBvuO0\nxG2R9nxgTJ+BKoN9lrBycxvR3aI8bvojxZVabVCDQq1f+FZXXN9OHFNOHJrD\nQylH87tdZWqL7AiZOFNcxrKCCJpQYCRWrOsdDUbTLLFhcIZKwsnZgsvwreRQ\nvcry\r\n=RNFl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFI/jCUCfnW6CKdPKAeFz6Vhyr7mNlYQYOBEW9RytjynAiAWTg8rrrly/5SbHxQndwFsPbVyaZ8o6FcL+enQ0pAaPw=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-h.0_1594668776179_0.35584042164956275"},"_hasShrinkwrap":false},"1.0.0-i.0":{"name":"@rest-hooks/core","version":"1.0.0-i.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-h.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"6e9b8b0c92bb84fce92ec809bf0235053000ce1b","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  schema: Article,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-i.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-fwvbqE9I+I8XmZGNexm8BdJemPx05yhpGog7NbZdXfMv7Wz8BDg05ZViY/f5ZaA2Bbb8FfE8WaaRHKhKzwtK3w==","shasum":"4beb3893434e7e79eff54113712797c0ed6b88dd","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-i.0.tgz","fileCount":184,"unpackedSize":682298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDiuuCRA9TVsSAnZWagAAoXEP/iAOSpHaVUhIm5mdzSHS\ncM748YRXo0+XECOIjJBL2sDfB8RK0vSC3x3aRGWI8zliAyLZlrKazNSEZU6p\n7fMscHBniJyqQVr8JtaQKJbiUi5Cc5jpypYFqbSzHI/FMeeV9I9MlNCFzvdK\n/ZLQElQ7XPuMWahzZlUZ+5zqy+CEgfYzrpgUjKzQjtLH/1uaNKgjgGsMAh9Y\nKwiEmpMNAOveENaeRFSsPmhhbwwMHYTNBSMqUkNz0XI4ogSjuAfBcXMBrflY\nSOR1JYZxhRDGkgZLAJAlWaA6Fw6tCTt7DunHciBKc9mJsgmWKajNtXqaTTfs\nmnAmTKxqi9BqhJW2uMWASntzsqvhBz9gcANTJjq5DNrBvsQgZ+WgJ3FNc2xL\nLkqkbs4Rj+tcZKeAyltTc5I6zbHqZmWHPUQUcCiOf4gjk1pQalFDs0fVnrcn\nmg1bmJmC20uCgf3OKi8INJDuQOStAY0c+tkVyFXYCS0X/JnXBR9TeDxOJ7qH\nSBHlvWFewhUizXadhs0KMFacykHSsmGXjridWj2+h7fiRVIVWHL8D5P/15AU\nzgO8Sx5P4o91WkKtBzXLvu33XIrFwL3+RmdqR0hpdkAtajjo3ULYVOiXmLPG\nipPvAHq0GN13qoNG0iNUE3Fp2m8RBR7vknjyPlCXjmCAl6eeQAEu7gm5JCMC\nJfBH\r\n=Sc61\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFa/9zf/5CmhX/Z9BfovySj9LoG+Yti/ASCiju5nPCdwIgQRk3uxNWr1MC1BSDVvau/QtPJhw0S/PS6JT5z+jjpQk="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-i.0_1594764206153_0.1579442253389982"},"_hasShrinkwrap":false},"1.0.0-i.1":{"name":"@rest-hooks/core","version":"1.0.0-i.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-h.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"8cab2b7050a741adbe63a1e19ef07e34e12e3e47","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nMaking dynamic sites performant, scalable, simple to build with any API design.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  schema: Article,\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/FetchShape) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-i.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-IL4VkGJiV2UQftmCPQoOHP2234O92y1P/1R9dHHtw2OpIMHDC/IqVL59Kxoiex+ycz5jh+vyYraiJszuVCAnTw==","shasum":"d7919408d94acc96341123ecd1ff11e6e24bbbd4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-i.1.tgz","fileCount":184,"unpackedSize":682428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDjsaCRA9TVsSAnZWagAAmZAP/16KowwSQZg0Q5ljw85w\nQwF/4GNMdi6p8xpDemh9LtDlKYtFRqlqy/FDRVBz/AmHmG1OBRGmKnNqyRhC\nle6XHjk5ETlO6KD9/7mwwaL13XCw5FzIzAYkQgbyht9K2S6GiDpEBy5oE1E6\nxuCqRqKuaO49T++CSHATLPfwACNUEw1u0KHJN51bdIXKOJdQhaHmSXfY4hxY\n6kInjNIDmEwgtOi0ce50H4W4zkE6F+L8MjKhE4WD2r4+/XDamvLnJsdNnve+\nTJrptsrZVJPRzi4VC41k6GRVMhcZC/5zYZKBsJGLVtaF+I3y4dcGFH0AsJi7\nlz7DA1VP7dhJ38ijFUntLUgPuBsvQXfPzG4XAJfXWVMBFC4RND6Ph6cVAnux\nlm50ZZRrCFMwsM/NBMFYqcvrDv5T2kvOL1e9p2EgIyuahOTJO3bNZ28VTGYP\nFPYBLlYpliiey/auwsLH7vPxlWw+J3n7eM0gyJP1u5jn90VGpXv22jzgYZfq\n6ViFkF20a+I09CcCimfteFrnlmht4wIjTWnqaMlaRndwD6JyCAMRyYlA4h2a\n7Q3BOA1M5LYj8DClrdmgKb9wqRx7tSJ7JhCthpPcblV6CIYDHVuwXrzUQFmj\nmm4KgD0FcaC/Vo4CAj5NZWU9X6OCBfUVdkccR5xak0U2YiSo9i8c9rQnjF32\n64e0\r\n=pVg1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCs8ThUsRLZZ5LD+HsIdJL31KCTkUl4oF7ML9Jd21l1cgIhAL+piWuXBr86XpIdpvJdmo+LjBkpc1aIPfz3JVacic/h"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-i.1_1594768153971_0.7606568723074776"},"_hasShrinkwrap":false},"1.0.0-i.2":{"name":"@rest-hooks/core","version":"1.0.0-i.2","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-i.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c149f4a6f2015ee3b21ee4b9b7991ece79b91c25","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-i.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-VET23dUw/0TmjHA8bhLecAkTE5Fwsr9Env4omVB1DUNxMpB8SECxesqiIj6ZPF/enh402uDRwvDbe40zwk81bQ==","shasum":"074765f1a06b56cb142fc4129fbf085391b7d95c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-i.2.tgz","fileCount":184,"unpackedSize":687137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFhyNCRA9TVsSAnZWagAAoTIP/jzZ2SpbqOv53YBjX9PX\nqiB3JLx1DQ0Cdru4/Rk6uMpAfqCNhbITPVYguFEPpSecrFRbtQPoGOzHL7cJ\ng0jNoL+M4Yxr1LRcbo1aR5tnmIphKgCd2ZrE0SLpx5HsZZlOaGwiRRBCpbj9\nCF5d1os6Nq3R7Gc4iEORlRT+uahUVbSs63BI6DeRePWHSMmoNDu84dYsu6kX\nfBXMv53on4QQXw7hVJ5JrCJupFSbemFiAXxwVu+UBiidjO9xl92rLadXoVoF\nX0o4YudWx4+VBVxtABSA7fPyr9hWEWzHkhFOUMUopROVqK/2k9H2VGZrPWJ9\nuIAGd81QGvKlybCiP0yUghygm8Vce/f46OPhyjir9YX8tJwdiSJuAa5dkGLe\ncnkphDVf2ywT3RFlqgZz/efLlQGRy30YBdHVXxJBe+kWYYPlRQSI+XeHpjG8\nUSofPN8ev8OdCcwA1ELUnQMLAob8JdT4ETLePbGsEEbvusQRunS3SbXzt3KJ\ndUn3BRU2Etq6cxVv3aatbFd8O63cRWO8UjjT7Svm0lRE/Sisw0J95COrkU3j\nR1bmi0QLbmNhp5RkhG+pE+jACOChi5Fu3EttFibxurg4ynFV3hBGWD5XLV9N\n0VKpA+6Pxho2HxUX3/SZlLwxvsbbriJh+H5PIDIWJVW9DRX2pKeo1tJtxycM\n4lKk\r\n=x3VO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjwkp9yxs6h26i/cQGH4Id8b9F46qmxNkTum5HeNZQ7wIhANkch3FYXVzCCOu9Tw7RQGeXFYni72TsKsf5ZCcoRiFE"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-i.2_1595284620825_0.11802170047343008"},"_hasShrinkwrap":false},"1.0.0-i.3":{"name":"@rest-hooks/core","version":"1.0.0-i.3","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-i.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9f5e4cacef42c62f4bcfc47d4acb1eb5d784ef25","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-i.3","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-A5OOsMCLcSwMmuueT+aRHKhv+yiaO6e1UvsWJhxokw95ky0olf87dbQsfXX0MOwtB7xFqaI1fAFC0FHSBq43qw==","shasum":"525ddfb96f0d6938043bc067b8da451b5f7d829e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-i.3.tgz","fileCount":184,"unpackedSize":688966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFlJnCRA9TVsSAnZWagAAk10QAKJzSGOKIUkZeJh4PuLe\nKVm6wJGVQqOsz0A/3O287gr6tfhYBseCNmCJYmOSkVoqW0+RNU8rjVv1YuMw\nFOwFV3WZwjFqE48qJR6fEUshlrI1yvYDlFsQDsG2ll3b6q3YaQarfwnC+yjq\nlpb6g54eiW9eT6zZgTaKQsi3K/1q4xnOxccZNOTm8pS2kPa3ekdlcxvg4JyA\nfqoQXV97YnAoHN8PBIcKa9GAQhA63rI3BGE2v3dgkHfa0v+x3AccgrsqZnA9\n/H9adDqgEZr7HKR+LhSrlVdHgTrPVeZIv6qMjkGc1ZRSy3dQLMJDUgLZlFp8\nSQt5ZDxpfkW4AIZvORkK4jsi32zXnOJNjztdEjyk/7IgnLImG/Zl5bZXh0y6\nJUl8tp0kJywXccUomQARFLk5LWdRTlc9Gk1q01C7LqvdCjwDhgyh5gttm0gA\nF2Y31iy0TpzA+lt67x3rT2MAenIczJqP0eOGvKseM7uGL5hBF2IiFSAvWNXp\nvSpWMQaei2CT8YUi5MKvUsIPW5rKo3rs4AcifO1VbgAL3v0lp/8idBuVyib2\n5vUXhVGdu9NtkHX0Ug7sswHpo+C7MwTnzzIa2G9wQyX/m45F0aluGiuuOXwK\nTtOGd1Le337UVMjXnl52QdXuj8oiVAfyfgMY8Em+E9La+6McV/Qz81+48djz\nJvsH\r\n=GBbj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2RlzcsW/oDlDkdoQisuvarSu6ftFR6JJ67X9pWXe1rQIhAPpnetzznZ+6uQuZMLMl5yN0mEaiaSb5stzEbjYrKlLA"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-i.3_1595298407061_0.25504983231785494"},"_hasShrinkwrap":false},"1.0.0-i.4":{"name":"@rest-hooks/core","version":"1.0.0-i.4","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-beta.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/normalizr":"^6.0.0-i.1","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"796bad7931b65611c4c4c1532e851e67ea6ad97b","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-i.4","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-1tnw7Bpc0YjMsoAmoVIg5KOJMESIg5SIQCl9RrDyiGdkRY2G+KWpzPchFbWFSJaZ+xBJ6AmVSaxXPzDApQKkgg==","shasum":"0742ce14648c59b40c8b03bdcb346b133870fe81","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-i.4.tgz","fileCount":184,"unpackedSize":689516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLZ1CRA9TVsSAnZWagAAUYYP/2kn+DJwSWz7vP1OYGV0\ndolVx6cl6pXRQcsK5n3myXShHPbtP0KklnDVIRbHxw7S06PA/usVQA/63SP7\nI5hCUX2Um/StbEMOgzZt0/EsyZ8J2wLAfXnKGzhjQZg04pba2BmIoRY4WTVw\nfTZLWFsOaHe2IuNy7JhgW6vvyIXMCc9FD8sYzfra5PrFvrSc03RMB1lFUE3i\n5lRC+zQnh1o4JCKZPaya9SJsSOOqwcHZlju1LwO8XyHlOxYFkyp5UkLgwGl2\nj2/tAdQ2yALsbPuYZL5olVbnKusCt6zatkhwByPdhUItlOQIT5FOpTII65hS\nAl/CwctEQIocKn1VSIuauPmJiqkTOOrrhqtbVwTkOhTNpQWUxlq/Xf7016SI\nPJreKrPDyU6vLlXxEqxxJBptCOczQ6ETmCW0ukRpMRs1epgA0LuIy64pZ0nv\nVJP57LFX0G9QyBXvK0Z7sKjT9lqeEmZF3/UXp5YPEVl2vbvGqCxAKpGCiNOD\nP6aHUxRGSuJJSg9HLDT5UlU+nL9Vz4Aqla1bfkNFrqS1Km4NCWqRXEk/APfw\nKsvzfiOTACKLyRDgT14dfEc0isDTvKQsC2ZKHq9kd+APWHFgMdmzSHYmm/IR\nWAhpL2nLoZLB5OzE5Qbx3BMls+noUX2IRWGBrOkGmbPpUBtBhRYY8lFEHVpl\nfsGZ\r\n=KH7K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEomfkCaUo4tmBOZY3FroLTHC7RIEGTF3D9OLAmpIcq/AiA7CF4DPpN0K2AcqST6/xJnvs1Mn4TdPPMmlHArm+6h+Q=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-i.4_1595455090469_0.19298272392233562"},"_hasShrinkwrap":false},"1.0.0-j.0":{"name":"@rest-hooks/core","version":"1.0.0-j.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.0"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.5.0","@rest-hooks/normalizr":"^6.0.0-i.1","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"85d6b4b1c05ddecfe055008f64184db9b0a6dda2","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-/Yh01GAgPvmd4e4HnInvvnaNnKbLGv0wPelt0eTB6e0uhflgNPsig75Ljrhy9RiF9AlJ8RDuTFTIDmYpNG++BQ==","shasum":"e831f8bdd3df2731e8eb3bfd86121a738fbc350a","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.0.tgz","fileCount":184,"unpackedSize":647047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHwz3CRA9TVsSAnZWagAAPkoP/1f9VtAv3hRguOogYgWB\nEH1+iLF9zPzeShBr+ihg+DXIxg36QpL/cTo/mX/xMLbJb5TPmJhqgKsx5NQX\nAXqUZR9eLutWfWrvvDfcgaxCIxmY/dooVUJtmakWUKSL2bljkl8iF2OhxMiy\nuv0dZEbFxToBe9vf4zRYNzzFMBz0KRJIFywkYjxMBMcQj0NGz/56j72R7olO\nbzX8R0zG5ljEj/ahNdgVT4JNVDSXXxGfb7jNDh0bNLL9rHUoOA29AukYdmJK\nOCNA1ypgXqS24TzMe7oEQMnokQ3EoW+pEJQEByf/vC5P3HVIcMQveDjmHAKb\ndogXHzP0mbj0iDGRK0sd2K+P3C+UQvrwdeIAdB9PpJZpm1HTaQOkg1qjwhMv\nVEr49S7wViaavllXd4BgIh/YxJuoP1nxS21YFotOkQt5VMlgl/U/01nnmd7j\nzeplj/YhJfbyYQzBUf6R7U4L8iNTVM7DpJlB/dB7WIRy/ZiwBM74wC4Qax3w\nkuKYQZY9OXTLidlH4nXuwum5rM6uJDH2o/jclY7ll4nOnsHm1Yk3ENIB9DGQ\nena2VS9m/ESwx1KIcobXl2KJ/PKoVYusT9wz6S5+LbOmVE6e0pMdwitkQsX/\nDSKmpSBUep13ZUMsE+BYoLP2thpHwu4sV9L8HspNR0L4JdIaLb2eXmY4q8ir\nOCPv\r\n=KBov\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC43OY/zoDH1Xn7rNOdnRxiX/tyELIuC/K5d6oskMUVMAIgONF0DEmlh5B7kCGjERTEiHkgGaxSSbj1rL7Tdibn3ew="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.0_1595870454916_0.757187863442542"},"_hasShrinkwrap":false},"1.0.0-j.1":{"name":"@rest-hooks/core","version":"1.0.0-j.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.0"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.5.0","@rest-hooks/normalizr":"^6.0.0-i.1","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"e2aa45ec8ba59e7774e635938354cd2114c5f07d","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-ZO7MuAVFBQ3mDEibV9zoKTbun4wNNCdgRYTaf3XvV8Uvibwkjx60Tk/gGohxXEvi3RY2Arcw+/2c+LW2XDdl/Q==","shasum":"dc000d3d6e993dd7c47aa6854ac53ad0200e20c6","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.1.tgz","fileCount":184,"unpackedSize":647668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHyunCRA9TVsSAnZWagAADRkQAIjbJjRqD7IJ3y3/jgr7\nKj7jveAo1CQJemm6Zxsaa2hD9RjZZZMant5TVo3dBpBBVmBuHY9Oa3UWZ573\nK0Ojau3Mhk+4m1sN0nf1VrADRU/cn7yF5svuF7J/zUQUNw0w2kIY/6wjqlpc\nwEBbd75DBm12BYmnMXisj1EExKvFYcARn36yEVA5Joi0pUAtNYGp96UeVXZ1\nAlOJx3XCTLYYtqC+LQgCU5hqonTK9rv0HGLCeZ6o0ZhAWEbq17xUWR+XGDdr\n5l14Tq4Tse6EtmagrJeIMaTMVSf/7M6giY3fyQvBZ1k+AJDyrmqXSRGY/ULY\n4ZkQIXoTwgCyQmI7qEu8k72B3aTjnss2PRQ6klTWXLzNH61euBsRGQjI2KZ0\naljQ6W8yI44/W/fCvvg8MGSfdeDo4eYNXiEtQdp1IJUzrQp8f4ogXlKteEgX\n8gHnVBGg7d5qwEfUuvOL9ovbBm1+DgAtxLYcYeoPHkh5fmt8ewptNK4gIdNK\noE5c7cz4nSrbk4thPrkPmMhqpecJ4nINB8Ybq8Rs+24Jh+OXahTYm+GOjDC0\nxAKhD/WumdXWlr3jhKeKXgIcySjSK4PB7mVpKRy2tyCu+kY0kMphTovbQ0lr\nT9sknIuV0QXr+9CNlbJtBz1hDkKIGAFrqmEEoahTHnwF2bJJhlwnmeITw/M1\nC89l\r\n=we7s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrVzB3aGc9uTaSkAHaWTk8PsKurpa6ZVzuK1cayA/ytAiEA1e1+fT9J7t4kPMjrT43gpZbk06FhZBxfqd7w/OfaQ1M="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.1_1595878311419_0.2460313811567414"},"_hasShrinkwrap":false},"1.0.0-j.2":{"name":"@rest-hooks/core","version":"1.0.0-j.2","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.0"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.5.1","@rest-hooks/normalizr":"^6.0.0-j.0","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9f1c93016d32dbb9c93e33b14e225debf1febe56","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-8iLhbXzqRBemVxbuFX+Mu0krrIawtZDdhqMqyXzXaj2PacstIDSne0r8sCe8ojgO3chtrNONQZAD+UJyBKZjdw==","shasum":"59a0085f0e92a8ecb862e78638beb41eb2bcef1e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.2.tgz","fileCount":184,"unpackedSize":647757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHzf0CRA9TVsSAnZWagAA2/gP/1hKNpbsDdVlu54ommM4\nE0ZMinaAanNuG0zMHLRjXTKTUERDMYTwL+wms+nP/YzBvkxmu4tsrC7UXHFL\n0gBLUF/KtsFCUnb/iFPci56WQkDrQRkXBLOiLLdPHkFWdVnvYpJRDHMrLpnC\nWXcI2AkK4v6BimNs/PznQ9+Iu+Avexoqgj5UAmV8RBomdqbMy5MS4N99kXGC\nL/pOxYnifo6UIuUbpnqmXVnEHz5b/rZjvPaH5ZG5ruB+GZrqzFilWy8Lga1F\neRqMrBFPzb8kokpHVkb8PMiEwQ8CMCXbjkmuKDsTChtx5e3/ktURMWLVsKv+\nRk1KS5OYxTsKGV2dg6ZFavSdN60zGHDgDxrt1M5z1RevmRHrJyYdC+ZY3Hdz\n70+/bEsRWKudttr87QkzdW6bG3xvoz75JPIIx6eZ5ShIS8rYWo6XFlnUz7Y3\ntAcoEEqg+6QzepENGstX9T1td5m+dJkcLhwZWdf0t5QGjw8XOqhxIBSOeYhX\nP0Xf6TwSh6xU+7XKcoqS8JwNeO/d2UnQddm23633zo4N9N4UWmLSRwyRMcKt\nBz2RS9zVVSkz59n38Fh+wbiqYC5lWvelakHVZBzj+O98BrCf8pM4w6Ft7G/D\nkufOaK2A1AmWdAAepcwhHSVRfYhgN6dmr4FKYn0LAgMcx7Gb9V9w3gM+Ds32\n8XFC\r\n=meQV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCinCPoDYzMqrlKdHwvdXPGCJminURELUiCni6z8Gz0QAIhAPjWTICD1EUilYyN/rj2qA/GcVdw5DFZyoOmeqjsaW8P"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.2_1595881459636_0.420796533645577"},"_hasShrinkwrap":false},"1.0.0-j.3":{"name":"@rest-hooks/core","version":"1.0.0-j.3","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.1"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.5.2","@rest-hooks/normalizr":"^6.0.0-j.1","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"2c30271056703287e287d2b06d22e81c6ba78f37","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.3","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-EQs/ccmt4MozefhRfEh0Tg9NiLiVC6VJEVl7ZaK1W3jpVPj+gSuSolBso/UUIxsvzmiTORLG6zODmFJ8NjqKUg==","shasum":"17c354adb351b7d3d7027e479b0b3138199e125d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.3.tgz","fileCount":184,"unpackedSize":647888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJIczCRA9TVsSAnZWagAA4NYP/3f5EIxGbsLwmIS/0Ig/\nQfpcVIYjVIW1YBtl+/ZnZOBQiYVETVxmXSejSMMQ+Ya/0KFHat2B8o7+uack\naJpi3/BFm3HPeqUfldyLVv8Lzy9TxmCaSW3ycPuMb0XXsY5xJxiadcdCVQJH\nqqqzWNX8f8RUSpZLEB9RCgKLOo8+W0Jp4nY5/HP0ZxEVGGEISZOmxiBLUka3\nI+NhW+uqi7GpTMSJ/5COK1ojQ2Vq5G8ROG9Lhrf2PfJ5rRS86UssU8sDNd/i\neqRamgp4xPTbi3kX+pdwmUvTcHXP8f4hhK5LGEp+krdufdO9Awnk9ubb1w87\nM4XB4TmZ+M9g/aq0qiDySqfCbGYXp2TUM3SxDMtCl6t1eJyLrOA+zwhnVxos\nvxxIgX0cBRaatN9xtURA77JPztLLgOuFec7xfjy700g/bZ68crQSPlqVHdHg\nWz2PBFBv6cUItuMbczl3WccBgKdLOy36mFjwcJlrvTjWOgMryEb0UeOKmvw2\nHHDzlU2YMF0IZKMlvjiyiCzKiNaUw603F9nNX2wpwn0H3qg/XIA6U8PbXgjF\n6vPLYKQowUIExwIY9m5t5BQgbKJVNbZlNBaj8OCH+eYJL8tIcHIZDX8hLO6B\nneH1ZzPegPpBaXbpnhooQemDoitFQAADYuE5/n60LHhHy3ytLH6zHt47fyfn\nxQ+Z\r\n=cI1X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVP/aL3AwQ+TYxUPhflyG86YLOiQUyB/j+7ebgBTuf2AiB5kvB7CHIzvfg4nBNsEtpLLQ4nKBSXkrJw/3Yh+niNuw=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.3_1596229426983_0.9111792753670132"},"_hasShrinkwrap":false},"1.0.0-j.4":{"name":"@rest-hooks/core","version":"1.0.0-j.4","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.1"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.5.3","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"5b160b1c404e64b56a2d31b368a53af0b1bc8a4f","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.4","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-oK0Q+WhtL/RxRvAwjnS7fbGmSNB1cqF+qWy/eKW+h+MniRG52lRnRb0EGAelJF5LppanqxCl0kVkxSgPzYwLqg==","shasum":"3a5c3a1310bae17113a664abd283776774a11241","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.4.tgz","fileCount":180,"unpackedSize":647102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKMa9CRA9TVsSAnZWagAAKekP/RsQKWZEfTdOxbMKcnW4\nh5JEgengwMHOFQ/TNj//un5h/nr/TTuhvC9Hi9AlS4ZCxk5gYdib89Sjnb5J\n/5frSuPBQvvnWiJiMNkshiIeac+QxBdv9mYrRYTBmurHjlY8o9o8D8nVxHnl\nriEnYV4+XF7kUdd/oCidfD/MoNwonojv4X7NN79Ra6q85z0BCdLbB4w0OMT1\nmT6UsTLhR7d4urdocX7C/NL70p6U4uPOw3Li8CTUAIxlKiomYG3e0jdHucpl\nRm2/AiGrF5e4XUYJ04zRTYWM11gCRBZJFqevxGsDFAYZU5btlDsca2Oyl8oB\nFpwGiqb6vRF42YCW/AyL7LI5TnU8KcPf0C/phyObeTYeT/enXtLosmbSIIJX\nro6HvYQfDHTbrtZ4RqgKpw17RfDPAnjHoVJaYCMWmf0O+4TmjWmqZ9i8VCU4\nAGx9vqxRlpaclK5HnocUKTNWb5c6YB1ZNTjXKMfUHO4nW1eDazD3lT6YaFA7\nvmy0G2xOLr+r8zPdl+kZnpFmeOKtqI5etCOLCBsbiXpaLpKGA9mlg/D00LaB\n0JxZ2bocnz+LoDzlwDFkqRg+K7zs6HDKqQVG6eX8/VNdmAU0xuZ3gHuF5JAX\nphgiJIWFZOkptQRYPUsqIAEY6kuLQDWNpj9PSd4zdFsdwQ230f0SU/2qqlVY\np8JZ\r\n=sokl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE8KnkwgMH0zah/4lbBPK7Ak6dllzAGG9k1SKzdOeBFJAiBzgpxoUtnqQciOg/ju0dlpHI0PwrGVv/qRzBz1i6A+vw=="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.4_1596507837295_0.9117460743244199"},"_hasShrinkwrap":false},"1.0.0-j.5":{"name":"@rest-hooks/core","version":"1.0.0-j.5","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.1"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.6.0","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"529b34f1f4913a4266abb2eddf345332e063ca1a","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.5","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-zkirb+6QaH2LfjwETGq4kP+NllqzTyXm7gFuzZ6H4QlTuysDjEbdA3IPim3RXUIRJ7yr5zycFMKRrZ48/EnQQA==","shasum":"9f513e3f43083a830f5d1ac885efda9cf976a375","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.5.tgz","fileCount":190,"unpackedSize":728642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLhAcCRA9TVsSAnZWagAAONIP/1Qzf3CekDiWICeXFbcA\nXtqHka1OmWwKcSU/2+77+XdWCaV+Y6joUqmKkq03qOEZ5Xq6iWNdNpxfalzQ\nTQPwryyvy3ol3kMS099/i0NCD7/EijtsNE5Kl9iSEN4S7ZjEo4tCHXS/yjpR\nad8HC8bcFx/FbITZZQENOB1xIEvDahozFF+qqqSS9QoGrpQlbhE5KeJcrEYi\nZAOWVQEZ3gg4eEmHXrhgTWEHEiwFKAG9vCscclCI484PkcCAjWhVboJRtLPv\nXvAhTyMPgwHQtg+8M99PkXK+D5XXlwQspsfYAS9+Eu42Gt3JVfaT2j0zuEXL\nDln+gRgXfX1KBKoad6aLB8eYc6kE1tfemo4vvq1yOiADuCMIThw/1ua81pFZ\nXxBANRadQU5+JGXKdgFlTl0V8YL6fpZuxHMhYlb8vWqvgnYXNZw71No6ajjY\n+rMRCN8B9KsjoZwDWdLjKPfzmpLKjoU7zpaYUSoy5Q+Jk1ju5Ow5HNhfzTAJ\nfdXe3rdtzUdxbD/j5VE40wU1ypeJYyulHZNLSZeSXFP1Bqh5pdhfTSpwF5Sh\nhfh+mAPLvLeBZOyoacGl0TNoeMPHvR8CTWrYtao5Q3DYk3F/dV3ytjviCA3Y\n9hM+jKS5coyz9/Rhymm8QqjzEeZxkcNJCzmZ8cNwI1mGQ2sDGyXHIfpkfxkE\nA6IE\r\n=L+nv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuQd4Dg7ucqbY3KRYN1qhLV03/1NPSSu2UO2Gs09U5EgIhAO3hvf1nL4+Yk7T0p/bMOoQAS4rnsyWn5DSoJi7qqQKX"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.5_1596854299754_0.09393697073479124"},"_hasShrinkwrap":false},"1.0.0-j.6":{"name":"@rest-hooks/core","version":"1.0.0-j.6","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.6.0","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cbd8314d4b04242c618d22da58677bc29427d30f","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.6","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-SXSc1wAzEG5sDWHOYKzX3GEwjseEsx+DDujnB2LOYBD7CZ/Uq5i/w4lNiHXkC9R3MfFpsuXTOAshUuyKHb5eHw==","shasum":"bb80581e96bd45d3e8469c75764eeee1020a15c1","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.6.tgz","fileCount":190,"unpackedSize":732079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfL3gUCRA9TVsSAnZWagAAX+EP/iZc9CXWFYnnDM7kzFn3\nuEr9vrBp/M+RNvr8eFwkvO4eEzoFm7Y48CaxYtySVMx6YyDUFdU7dzrAfdcL\nGvu+pgt8B7ZDgcTuoBgXI/hVNw1fDzRxOI1yEJqb0mZRzTtdkxW+6lCqNYQV\nzB1THrf5PfV7RmVOUfEk7xLQnm0owTRrG8BjzRJ++r8rRQ8VTdMszZFRLLZb\nuT/6ABXL8HHKll0/aNV6A187HVmZdKHXnOCasBUgtTHqEYRDqBTmkbaZ5ME3\nOCPymz4U44/mGl+BitjzyVDL5pEd2Y3dIqyr8p31nRS8s/OtQCnKlOteiurQ\nOS7uC8QVUrYpioYyXuZGBwFiEoGUZGYm4+3DUehhJ7HVJWaCAppDFI+flv7X\nSxxuB6OZpD0QG5OFjrTvH+qxTBlOaiePCsNqtbOZryBbko8GgKfO0ykqzDRP\nsZ7jZeXuLhGf81Jsrf+Vt4xxVFhZmyCaOW8TvoE2Xstl4N/ixJzuYNpM7HYQ\ntn+rAmVcYA5WvQCT2sNmSHDgJTIY157bmhLyswabcCbj0X7sfHdufkeK1QQC\nJ+cQHyAlO4QnpKKzfHdzDYMLvIX4+G0R8KwD9YMq9EKY+s733OYpMmWM/xPW\nhC3i5ZHUh7qCqYnFUpaMUKnapqwouIgrt6kEjEjFJuEI1TKc+VZbYqznudU+\nRx8I\r\n=FE6s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDjrWyPKQ9eQ6NcwZ+xTfO74D+ZYVM0FjW4lpM1Zea2AIgDZraUPQhZAlQrwKwmyVI+DLRDVlrDDMva9ArC6Z7b6g="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.6_1596946451731_0.1049203384307158"},"_hasShrinkwrap":false},"1.0.0-j.7":{"name":"@rest-hooks/core","version":"1.0.0-j.7","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.6.1","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"fd8e457af82610927a6a120e02801f0f59d29150","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-j.7","_nodeVersion":"14.7.0","_npmVersion":"lerna/3.22.1/node@v14.7.0+x64 (linux)","dist":{"integrity":"sha512-hDF+lEQKfRi4bXG99rYTLKhPnV9nLdGlzg5Lv6kKhp8nG1BY9zVgOomOdErDs8li5ir0USirsrVsJVIQebg7xQ==","shasum":"54b80c9c9f6046650760588055bcc26193018901","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-j.7.tgz","fileCount":191,"unpackedSize":732553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfL5EQCRA9TVsSAnZWagAA25IP/ibx71aOSt27tivl5HgX\nxzCGS3d5D5EzFi0YwEkKjKo2cmLCCPsJkmkKRUk/5GErjs4Fc6F0mh4cWa4Y\nLFh6aLkVJle56bvl6tj1aXGT0wP63RCZlqFPnwbrT5tlxaa2AFl88JEgYGRu\ngp/uNcJGIw9sxct2ddDdilTNQAfm0V/6rQgdBvZxr0Mqnlg3vCSHhPD/go3C\neDh76huw8IkjOh2CcKhuSWuU9pgNwgZBMdpC4UR2ssWNU5wHq3EDwpeUPQPa\nuTfUg8KgV/6w99SuoVnpxk5aa2CAaRMEfLOpXc5TLbPpU7HCj8oJDke0ayri\nShqK0+wdmqXXsuMPixZLwMC4FjGXOBiQ4Qr/AHr943d4nESuO/K7+EBkTkSp\nfoJnufz1Rq6t/DYJJOlV16LAEfAfvH7VY/lus0AAH6X0v8S61aBoW5lk+9yc\nyXUM1XcExmNbWt54p/enXbwnbOB6bEBahv/dVngn79hiUjjZu2RPjsSMf/FB\nVmmFPy0MdBT62HAmvAmga8scDitIwpG5GKjvdciMNx7zrBwFeoBniqP+EsUz\nXeByu7fHM//vNiMCgqNQT/cEF36/WhFhUM3L0goq3l7axppbk3Bdlk/A+BZ6\nHXqVAUuPTDmLeWwjMhhuLXhkAqUK5Ze1TLldbvBcyp2JFFpzI2KJUCI1mX5v\nvNir\r\n=ie7z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLDvRBiz4vwQZHfuQKsfrCFaqqjd9jzBwV7a8E1HM4tgIgBo+fPtlUGQAWcKYIkjVU9nMTmkaaLtavm2ZYIQHUO40="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-j.7_1596952847800_0.7471167150845006"},"_hasShrinkwrap":false},"1.0.0-k.0":{"name":"@rest-hooks/core","version":"1.0.0-k.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-j.2"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.6.1","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4","react":"^16.8.4"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"f53de56fe7333beadbbfbf31882ba41ba01de5b5","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.0","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-SdtmRw7HGuI0cPROIQKZ2oU2KDJvzhIj8t46rd6Rea5nsYSGEmbaXpXvB/RFGE9kl1aXQRy7y2BYfWiVBZgRiQ==","shasum":"7e38170cb43af29d60711e847cae181ed08c6bda","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.0.tgz","fileCount":191,"unpackedSize":738096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMIZOCRA9TVsSAnZWagAAb4AP/RLyT3F+ZHLrEZmL5gKb\nN7iBhbeS7la5C1ekIyokp5dr5DEMwhZm97hjDIyQPu36aGOgun9p7qWieuVD\nKyR8YUCSfVsdzDEBatHB+C2f4LWxp3zOKdOf6Jwa1NsSKMLeOeAuLO8+vBtT\nTypX68dw2rzLcYTbxFInKLEX8BldTM26kXRGNIF4nvIcLlGs2SpUqy25F0Di\nanfINiEpFzpf9t+IRvdVPk5QDr6Ydk0Vlbc2vBsh3ypHK/qY6J8fC9ajWZ5G\nJxQZL6TPXst3fIFnwqH6S5VEnhFUEdRr3cs1TrWeOJOoF0oiClFP4b5p5/bj\nnkAkIVkpuMk9RRF/Ej9L10EBP5/OznF8jwEWJM+GRh0V8Rc566f+onALMgSq\nzOe1qmFXQmx9yhe1XnkzXozogel6sFXhmNE88k4Wm+X8DPx66auFM1BaZkLO\n1Dr156/H01evWqBGbOYTs4cucnuqOzJUyWRM7Kii6rtyJNX/sGjPxWd1FzI3\njxoqKy0yu9iHKUQfL5X08VwLA8s71Lm4/DCvR85OLHbVhn2fQoUsIU1msigC\nRIeDBDgtWxB9lofR7VsdRwRmw05yNKbitlPopPPtTl2xRNVi0/+wC64sPcgj\nPqiDtBd2XfiSUk08uPYHwdW7+1P00Ewi6II62KvOX8bUXgWMKLLV0krRotEz\nS9Gc\r\n=eKnk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ2NYIWDx4KoQ2FP7qbWHrGx2hWcUtYcSVOR/YnFqYiQIhAK5bar9PHrAKwkaQC6lFv5mEwW9+8NGCJZFQpdXhjKQP"}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.0_1597015630399_0.26896846437606503"},"_hasShrinkwrap":false},"1.0.0-k.1":{"name":"@rest-hooks/core","version":"1.0.0-k.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.0"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.7.0","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"ccbc14d40811b2d0a5f3f9c04a5a6345e1d15e2a","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-x4U9+qCK/W4QN8mRQe4+8rT7ktUy3PWCKbgppjqG0vzNKcyj4PEbrLwhZZ6fKLz8lUZq057QcARaW+XVL/U2ag==","shasum":"aba6d64fbec0e28eac19a96ac2bcb0bd5a3987da","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.1.tgz","fileCount":191,"unpackedSize":738318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNGyWCRA9TVsSAnZWagAA8dYP/jIAE+Aph6lLHgwfvNtH\n9Pz4qIHdOJZrFDirqNPjdT0gcr0chXd6jaJTCuJgCyFqF4Abfi7POZJrTlR+\n39UyHgDeEGJoNKhBBFAua1r7tPM9+LqzrbehkDdY66kuARHyeIXpGK1sQz9C\ncIXtCKIrYhmxrozZcr+qf16GN9yZI5bRsnF//Ve1WJXGCyxN0dcIpZA3EKcl\nxWlNlS6Wau6hlt9Ak6TlvvCxMwelDbQzVQ6J+GPYgN7XfRMisAJsm9O1pUGV\nCeBo4tYFFSm5VbIl8WqpiTgmK0YSJoL3WqaA0ljqf7j7oUdlp8HifVm/CdL9\nStvwdi3O/o+WblMMAKb+ZrLbOZ3EDxKum9i+cg/0YiNVGIwR8T0CFur2jJsu\nj20GmvGPAJ7I8jkW1hG9CmuRWMI+s1TQT7mwRFQspjNJp43Fa3g0za6Magr6\naCHBiRkMkNHxRj6ATWn7R3l2n0Ys2vWGv3bi01/78R83+QM+w1ClKvf8WUiV\n9uendWWZKk3VeG/dOJjrcP7dzxagRoAvbFImUu4+lGcAGgebzAhaeh4cPm9x\nKfcdNMBo2+Ws+kh8Aryqdddk1AHkXvHT/wKaBPFF9QKhj3T6kfoxJJp2yA75\njBB6WvNjvjAcJ4Cb8Mr0Q/4M3U4Ao4y1vTHtOaIdlVsAArFYLVCu6Q0RESnR\nJMY5\r\n=9Gv2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDM5qQzeTtBgOmQ05ZeouJQ+7KRE+0mkifpQ6myH3wj1AiEAmt6I3b0sD6t0lRmJlofWBzcKTCIjD72FAI5J5JACkps="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.1_1597271189890_0.2497526988451988"},"_hasShrinkwrap":false},"1.0.0-k.2":{"name":"@rest-hooks/core","version":"1.0.0-k.2","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.0"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.7.1","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"7ffa7b3d8340d560cfc79f66dc7a00e96fabc530","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (linux)","dist":{"integrity":"sha512-xi8hkpwCWu3v6HNsyu2X2F3t2DJKNsacq7wHS5WXlKBQ0SHBn/7oC9HNiG71YQEqLJP1qawA5PHra4Fz9jZc5g==","shasum":"1a55e240cbf3a93938f1ba466365e1b191711697","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.2.tgz","fileCount":191,"unpackedSize":738407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNWfuCRA9TVsSAnZWagAA4n4P/RnVBbA0AgyRtqO6d8eK\nS+P8GKJiHIkVTdecDye7h8wFmY0SFsI4tskBtQcywR6/7nxITMFhJB8wvtN7\nA1WmzfZ7tUwu6o+qz4FyrHjNr3Qfe0SdqrHFQiygDnxKC9rZmVxlMgbFzko3\n6ePcndEipWM72r+cnCAHBO54BHQO3Vfb7nEvk14gcXs0MtdOuLABaW7yqeXz\n32BBrs0LdjlkPkSLY8f0Wc9mcr9eVFmKN0YOzfRmcGfIg74DGMWRTnOCAK8S\nc8DUu0a0syxLZ19UBHor9x/9TOUbbUnKkU9zJv8gAhsTfXRi+eWDX9XUBs5S\nOkA/Z6IFHbMxcCQjjGwQmCya3T1VQzlAn5xEckvg6YJtN825MmfgtSUsH1PT\n3DT6HJJYccz1MsbXTGjD4ZwIgm0a78cVGL1Mw/MLvE0hM3w4740MZ0s8EvrH\nvqX3W0xjsx79YNPu3P5UbpO5X2NwJUYzqlWzEHWL5DJZHuNfWzFaxADftMj/\n3FDEnLl2/Hks1b9HODT4R5m2m/d6WNIKHe6giSwVNo5J/6YPgLrkNAHDSU94\n4t9xgP+3RyUqE29KBJ+4SHtqnUbgc8wIHp+mNLl5W/sVc3JfEXDWKKlmqQ6J\nsppaF22rbPaLocYlodzkpUgvpcJwv/QmQQdYNe4GW+yGx6JB/Ay2ftONCpgh\nwy3Q\r\n=wz5f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAO9mn+bAd/J1MHOXm5Pdwp9NvEA6+CngB02DbmIkICYAiEAlS1BGEZINTKK9mMHapoJEN8068ST9AZjvpQuDXDG+po="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.2_1597335533610_0.10309956512693286"},"_hasShrinkwrap":false},"1.0.0-k.3":{"name":"@rest-hooks/core","version":"1.0.0-k.3","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.1"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.7.2","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"5857d141be1e43df68b62e7f9c4225beb4dbf8af","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.3","_nodeVersion":"14.9.0","_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (linux)","dist":{"integrity":"sha512-nRZYc8F9duVo3vYy9s7tRFg76wW+D5fCH/bDh9L3GtbIPVlbHADOXOloGYxA4FUvYQFnvv31GoLavPuwW6kAFw==","shasum":"abf4fc3f936a8eb9c38ad83f2f5d8474f2db3979","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.3.tgz","fileCount":197,"unpackedSize":755099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVw0PCRA9TVsSAnZWagAAbikP/1ct9ofWGTzeRzfF9n3q\n6vh1XE5Sq5vFrWNmW7+kOwAACOWLVpsq+zJvc1LWxTl3a2pVJRbdFe+zpYtF\n24BHorttWM0ubWiuf4OpZxRr/1MsffPBWRp768h+0+445qD1RDwe+QhzkRLC\nCxqjqUEXzQGY/ma2cRhk94s47wGm4aS3wpZzSr8oRCaY/DoDXBchhJE4eR5d\nV5iupT2u3+8hAD4U0brAK0zSPfXQUjx+efdNOYn0bQ19oQIatY6vKrnqHgV1\nQK5KO9t5vSMJuN36DmHjf1jYWVoKTIrpAoboERy40CqSBJwDl8A7yOHXWSnI\n12gSoiRIoXAFbex3kG3Nl87UTK9+909k8q3QXUUorCLyc1ZTsyYKVIMdvyyz\n8etpjyf6JXnHdAkL5G+8ATVQKkZCpKmnueP+vEjrsgXsgg8SYmNbvg2/toUf\nPBDbGjKvkh16X6l5Kl1T6hTbCL3zbRpPykCej/hlYN0DSggUwsIIWQWDCEuz\nI/FRpZWiwFpBSP/ve43r/cPmIwUclmpOREQxy1Clh0tROskGb6j9jk49wNZv\ntCv5YXlL3ZsOme/GleTNMynTpjvQNKrNJcH1uMJ1r80B3P4LC7OXhUeTjHWo\nerA55JTnGnbfyacLz5lh4AA0JXaad71lrCZMsXYRH441K9cgEo5nmrrPpOAP\nR6FU\r\n=B3Hi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLgiy8cqQybvUy39tRMKPI2TVcOC0wc1qFL/1ZvnCR3AIgdVo+PpVFDoWDi18csdlHMR71KVNAZpsYXKksOgDqU20="}]},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"}],"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.3_1599540494761_0.8966769453866332"},"_hasShrinkwrap":false},"1.0.0-k.4":{"name":"@rest-hooks/core","version":"1.0.0-k.4","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.1"},"dependencies":{"@babel/runtime":"^7.10.4","@rest-hooks/endpoint":"^0.7.2","@rest-hooks/normalizr":"^6.0.0-j.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cde608cc14fb6b1302271b555154d7db981264c5","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.4","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-C9s8PB7SCh+iqTPOxa4f6fkh7a9uH6vURlftbTd6lEnY0V00G+N2SRJfK2RG5vqUP8qX1TdTk/qi1ACjo87wMA==","shasum":"5ab8e8818425574ea01f72e49724034c0140689e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.4.tgz","fileCount":201,"unpackedSize":758242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzyWICRA9TVsSAnZWagAA1UsP/0IcuJq6scWotEzT5l3o\nehDwhzkMDdB+lkxMLwe2gX5gpXKwQZFTkWklr0XqXb0tyrJ8duoob2BdTzWQ\n6hwMOBqleeZgz3K90K+ZYBiXGg8pa4+1eg4yAUZuPohygm0JNbc+WdGP9EEP\ny0g+8AJmELNdh6cM+PwpRsqiInDTQFu3Ci7klAI0E1YnSJR7PaijwTlxFfOg\nJzuc0hYEq5E+YSPsGGKlu2liau/GJkniTxB8FGQY23YseQaGBosBAJHzNtix\nCC4qVkiB/Ol99+YitaI+NmP0Vy3Fo5HjuhDINIuim+RvLWeGIwVB1t9glRDA\nqFKruakL+YRYmv545oKsXiYg5+7ljO39MgEgzu3oUefyXeHOQ9udqO2z4CGZ\neZF/13hTqURGbDuaa+EFmFV8IqmbQwGVUfghyaZwSSs0b47YKQM73H5X7R9U\nlqgmbJ+snOkTB+3zpTGLWvrqPIvC/QsySF+j9rf1NvLZePRCr5c7w1XeoVNc\nIETOfinc3S0EPkboL0keMr9LXkeVkJvcP2xnNkjEEMjdLVYfOUfZK9fvC2z0\nvrNYYD7+yB5Ppgx7d4ztOQaZuzaN69f36AuxxB2N9igxiTyF13W741DDKbc4\n57MgBy/2YuDRxgb3t1Aj6Ai403VePKze2lBsUe/VGJ2p6Xuu1NOvHcHyzQGw\n9QeC\r\n=e5aX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBvIUxJ1EEJXZI4Dm1dMxrxCOoUtLSZpeEET6I0ysbbgIhAPg/rkb2I14T0btOMud82IjHNIwZsttNDXWQVSdhqZAn"}]},"_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"ljharb","email":"ljharb@gmail.com"},{"name":"ntucker","email":"me@ntucker.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.4_1607411079689_0.3522230002557798"},"_hasShrinkwrap":false},"1.0.0-k.5":{"name":"@rest-hooks/core","version":"1.0.0-k.5","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.2"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^0.7.3","@rest-hooks/normalizr":"^6.0.0-k.0","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3d62db99b47ac7e846cdbabba429b047fdb8d18a","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-k.5","_nodeVersion":"14.15.3","_npmVersion":"lerna/3.22.1/node@v14.15.3+x64 (darwin)","dist":{"integrity":"sha512-CqBtIAB9VcXZg9qe8St7CwZNN4Xyb/AZp7ZgV8dcHIhXH6hi2q7WTS7bKipZhslE9oHbgjc41DpMVXoEaCjq1Q==","shasum":"dc89e5356b5374e791655286ab6cea268e335d5c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-k.5.tgz","fileCount":201,"unpackedSize":765911,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9SjVCRA9TVsSAnZWagAAcv4P/jCGpqciyqtojuijVpsH\nc2qzQRIAfTf578YknGN/0IjlAu4z3FFxhhFr96V2GqY811rdbuk/fYvEDPIP\ntpsicaQr+TsP1Bg1DIVQxxPZIcqVPMCMAsbulUJIuZkHj8s+8czsDvFLMogJ\n94v4cL+/uOP4ILW3jFKBAheanw1+KfqAsEhLvWrL49DysgkZP3afnWp4w7pn\naXRI1YHd9xfQu323H9eBoqjQGtAOhoDhTeF4igtnARrV4yLUeMY5K0blQoQf\nGs/LAXTb/SasbLgQcSpBALrlFXW5Jl88sT6tbkghcg6JnYmfwhrHVAz9loRn\nkBajJ4KB6mQsPlGyViHQPBfDORb9f6dQeSTuSgwIgWtkwvImqUF6MZkHGpnD\n41MMxscOc8M8mSzPJc3jK/rrNgUZMPaEbMTUrouWy8nXtmZAXO3jbL/WLxhU\nlIZ2qTRvZIiX+7fOckeWgY+G5ZIjTMu4b6+++C5zmR/wEm9m80yKIyMHEHg7\nElVuZF6VkaJOTXlz3AwzbG8VT/ycVa3BMnTBBN1Q5WzuyEnBOAGUdvfgjIcc\nbJbXfgeywzZhu6qDe03FPTGJHSnTQ/MuEgtGUA2THV7CcpdgxCy6xFGRPP3Q\nF3Q+j28SQytAYcmhBsr/MCuCtMoRP6vmaIGO+uP7XOiduvkPN6O7amE2G7M1\n1qIa\r\n=lHy4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDxDYINXbNvfhFLqlWpW83OLPsdlIwV0Tp/X78DrH2ErAiEAirbAZMV6ZWPLdDaKUQeN0ECFkvwVCZ/szE+UPNTDh3c="}]},"_npmUser":{"name":"ljharb","email":"ljharb@gmail.com"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-k.5_1609902292818_0.35219074883247625"},"_hasShrinkwrap":false},"1.0.0-rc.0":{"name":"@rest-hooks/core","version":"1.0.0-rc.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.2"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^0.7.4","@rest-hooks/normalizr":"^6.0.0-rc.0","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"aac7788118bcc573da9eeba25fffb27e950ac9d6","_id":"@rest-hooks/core@1.0.0-rc.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-msj7D/lt6zuhgGCp7e0U4M1IzCgH9tkSiJBJUNsHwgES+ellhZ++rjrlNru9bMY6ix8fsuUlp8F8qQthtGqNKQ==","shasum":"8c09d8e37af08c407391bdcce86e345ba50ce426","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-rc.0.tgz","fileCount":202,"unpackedSize":781453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAO6/CRA9TVsSAnZWagAAnhkP/0SFguc0ykUnC9UCqSQO\ngzjmlN5Ie0NqzmgrMpK2Lf9BOIptmgCIBHAxi20geUGymedFWRVKOXv/H/Zc\neYV1c4PuETj48SafYeKHDvOZ/ep8aMsrVQrJpsbTW3fvL8AsKjUvgVeHIl+J\n4mWEMg0CM+IAAcQkCS3J6P5RqQ721Ep+WdPK7mZjDCf07wt4ruLV/kngS2Pr\n7rWEnDF1sacXii/oYM5ZiWBYuN5OjPIXJJ990luOTGsTDp3iTuCJBzf5O7YP\nDNa+2oBw/Ba5BD4iWRHinQJFiDyE3gkUW3cPgQq0nC8C/EdPOstxgFXOMwcJ\niCDT5ZIwX1PwTzj0v4WbnZdheGhezYQydmrkkeCuVt2Bkue8mujv4GVuawtb\nN42oIyzXeqsjCTrFmOnScEOaWYQf4FKK8W9iXTL/kN1M1mUQdM1/DpB9PHOz\nBHx0PsrcpyIVX2T0zFlMLZDnFMbPI4+32PyVdAPop4AskCbKAa2RbcdrL7bj\nA79Ie9Fg2zyZsLhCYUyxwUJ3LRiIJn8kO2NfwzwLl6sGQlQ6gmIOWz2ptZqX\na6hJFbSEPF9CdDsjTv47sY3cRDUIUiNAeskldz4u181GFa6r6vtfxzO3CmSm\ngDORxKZjlWXMTErBRtPTk2gbrQWs1zvGwXnlHEYxrxzVJqPPvus3dR3eTkdh\nCfxs\r\n=7hsM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMk8P+0qdVcTwzyZmyib5VWCTZ4IIftPf5zfrdUBTOJAiASsgLT7PD+dJoy7HrKfiNJgHXupVfCrKiG+4WOAK3dMA=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-rc.0_1610673854703_0.9127504333914929"},"_hasShrinkwrap":false},"1.0.0-rc.1":{"name":"@rest-hooks/core","version":"1.0.0-rc.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0-k.2"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^0.8.0","@rest-hooks/normalizr":"^6.0.0-rc.0","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"32f0a9dd1b3e396f9fd3be7626da0b4459edb3ea","readme":"# ![🛌🎣 Rest hooks](/packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ Optimistic updates\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/next/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [ ] 🚯 Pluggable garbage collection policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.0-rc.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-WUovBuyXFqlFjN+GZhF5KAFt1bnAf5oZr5xKHjX8Eq4ziHltHdqtTk1jrR3SwQD6BwWzPHdrc9t8Kb77PmP/ew==","shasum":"f113b718b66c165703ed2d4f20bf24707d8c7002","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0-rc.1.tgz","fileCount":203,"unpackedSize":789301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBmYtCRA9TVsSAnZWagAAFiIP/10liVADUgH5bk9br+Cr\n497aF092EdtDkUX+91+QDHVmBhWZnH+wwXPbc9EsjFBusdIxKe7WNHstmpX5\nFVl0RVcB3YZfFsQt/Qp8LO2V7ybKGrT1nRzLL8py/fXzjNSUDLhLOrfE/dIr\nUj9vGCIYbdSHWkpb5wvT/ymrWbNzWcCK9veZgN7bLXI5NfgaVcR9hxyLwwbv\niDdZJJyCeGm5VGQQUiri7JrK0vtfJ+VOXPOqlY2bTzKKy7PaEyAu/lwZKo0l\nwTGD8jfWYpW/ppvvxZ03/hZ51jkeifx0ff9T53J+fiFDm4RYrqx0E4e/MnG+\nA+yUh1cBqc4Rp1Y4urvwYN2Y0Zl0IN0kH/kKmI+CZjzWfLcau4D+VgjQ2cuo\nT9yHts1mt9+fzvuVwGtrwl0/4BFFtrS/MinzUUnuzcOk6Od1HO8ybrOqcaeX\n1F1X1rJKQ31H5mPOnIp8AnOsVkp3DGoFTJhKKo2f/TKJvRJKvizOtqJApv/S\nY3ZNydVHxTq8i0jyHmF4XIntIkXFpNEUwjEX23A5fql1fb2Xyji7BA8fBmgj\nZtwuxqZA3NVTssDyu+xtfphao4Tn6lv/wS1IRP8ikCrxg8KH4xgtdSUUIkxs\n5J8LGA7gJYSkm1B2Mo6UGg1P9DkxLmOqpJsRMjg5/DbUmzF6pm97P/AhfM2w\nAGwc\r\n=VpP7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJaSsF2+LU1X20HF6tIQ9WGjL8rDjleL2TSlIC56TANAiEAqqV2Ujwu/hesjmGbIlSAPkpX5r7IuNDBk5AiSgvNRD4="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0-rc.1_1611032109440_0.1434096737793502"},"_hasShrinkwrap":false},"1.0.0":{"name":"@rest-hooks/core","version":"1.0.0","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.0"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^1.0.0","@rest-hooks/normalizr":"^6.0.0","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"987d81d74abe240bbc5fcc08d4d9fd18a85b12fd","_id":"@rest-hooks/core@1.0.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-MKoXjzRmmqdsihgTe9a+WtOBjg6E7daGoc5T4c3gxvFr7LjFf+HPlk3yAwv3neQTImeb3udF9YOptLdk68PhAw==","shasum":"d4c8c7da5ff8e3263cc0c4a4c5aa7fd6d111ddee","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.0.tgz","fileCount":203,"unpackedSize":800101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBxXmCRA9TVsSAnZWagAAyYQP/RENHvcebQ1o6Kunh7Qt\nyDuaRKHEaNj3JJ8C951swbIq0ebVRLuvOSk/Dxigd5fCF4DLM7NBeCGxJmKm\n+L9lnH5q827rP7EETWWnFWghppV2x4qMVqdoTL2uAbjcO3DCt9opBxvCkvWh\nb3/lUpENwXGsq6l4/XJtLcWjMTpv4Nuo1in5SqgQ06QThJ0eSDhBeuNdD4hS\niA5O615P5uKWhq4H0V0CwwvxxCKahh6zqR7OUfYLhiGbAFEzPauEvUfNr2ZL\nNVuFBNOGGz8YCihOtYIjWnoL/eogtobJfKrdVYaGMmC5dou3y6dRYVslEKTL\nOMDtItgchkP9wG7269wsbDwU+CTIwGyfj1epaksvq61keU1xMeh9PWrz4Kcd\ngJm6naUfi+M8plQnfNPky4PixtA7pJf61dolTDQL7UY+JEMAZ+RrMNGZ7Er9\n0axsXjvbkZd8te51Xx1TJCPY3/delz/fQOGoaavz+YzofLrvgraSfBuw4VXv\n7mK1R3K+zj436InwN/AlH9eexs6PKPaoZF1tbdvddjs441/YNYsjJV/obisv\nBY9wtdfnQqVG3AkE1FPGd9hgsBsGfvwLltyJkdm6HdANWfMn1nzA5q/X9v4o\nr1E7wt9byaJB/NeKI0qejLjwWov2UPGSXmigp+FQXqCMaZ7jEJvzcegMCEgn\nGoVY\r\n=RxQC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAR32BAyr7+en3lFhhHnxaH5iWYdISl7BujPmYhq4jf8AiAehznFZzR9xYG2iTxRStAu8KSyOlEM390MHd+QTrVPsw=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.0_1611077094383_0.27340234398920504"},"_hasShrinkwrap":false},"1.0.1":{"name":"@rest-hooks/core","version":"1.0.1","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.1"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^1.0.1","@rest-hooks/normalizr":"^6.0.1","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"a031da2ace9ba826dd1acc50b50cec4d42cc6a85","_id":"@rest-hooks/core@1.0.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-vpzHPu+kDDLRYqEzeYs39TDEA2JoDerJ16QZEX62u/1iP9zNvbxzWpNfbJVOyv94VP9z5HNwzPJxKbB09WrUJg==","shasum":"badb0ff5eff04543719bf3d950627634a091747f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.1.tgz","fileCount":203,"unpackedSize":803433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDfzKCRA9TVsSAnZWagAAjY4P/REzcmswl1TYdm7vdz4z\nzqcVQMaShSlu6QK6P7FvcTj9CFzxpU+CZKuG5PIGEvB8TGrTZseUMfJfOnxT\nZZ1XvxmypCmzfm+lwVKKpI/TVXcCualcMxEBTSR3nBvTFYH7pAqAiFjQ0JbA\nBRd7tvJtaMpzh6ZtETwR5gRdsipST7WN751LIIqI7BkjryMPkBH1kzuS6R6n\nI8Vh/ZE8Tan88PhV64ZGlCr4OI8ct2/4k+dXYGnPGdzOVpbN161KFGTHXK39\n7UIELVLIdf2ZC+WjuHxzy6kZkkNmw8u3z7Z3kcVJQ+pWx2IrkwK9h4K67yV1\nYrZiRbY8+th5p69y8+QYkYWGT+srTSwX4VbBDzkVLnE4aW4jCs1fdtuF9+JM\nVcgY4KuMHBVXQrAeHCL8VS91O98exmHL7x5/+5rYTPwUIis2E8WllVI0lqYk\npP7hgoqyl4kQnh4H/IjVZW5/KDCbfDaqV5+zCl9pPru6UXWyAyZQWpsZsSAG\ncZ3K5vpzKPh4S85kTkRVerXfvMAzIdWbP1tr1eYJsuvVx6omD7Ine9OFZt3Q\nWHxyka6y1RhLf63li7XVIkXvv3zjDOyPc6jGEWW8+BI34S2mQTrYXAc2aAdT\nM61PjSiyUJytIjZ0P6c2AmnGiZHDmIiOZRzGvKZ87lkczdFL6qYHMQZihGaR\nIPjU\r\n=Hn7o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE97ZBhckIULdD3NQfulacvRZGpjipdJ+bEP66scTocIAiEAu+Gn0SljjR0A53LSJpQkC8cI+Nt/9A4bzjJVJcvxut0="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.1_1611529417485_0.739922449968641"},"_hasShrinkwrap":false},"1.0.2":{"name":"@rest-hooks/core","version":"1.0.2","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^2.0.1"},"dependencies":{"@babel/runtime":"^7.12.0","@rest-hooks/endpoint":"^1.0.2","@rest-hooks/normalizr":"^6.0.1","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"ebe81d7207573ff57b73b13c9ada494ce88fa731","_id":"@rest-hooks/core@1.0.2","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-LDtBUyLUxkyLngFyeCS+y060HB+QDZ4pe6y2goDZyzfS6I3ZvuM3F72bSBT352GEsxTiOABjok//6NG6ceaO5Q==","shasum":"4a1c86668954d69340d2b0baa9f90fe90e223b37","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.2.tgz","fileCount":203,"unpackedSize":803617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFYDsCRA9TVsSAnZWagAAVw0P/04lJOoY6UvfgxafLkGb\n1V0H7PzFlKq5U+B81Xv6UyNcdnga8I6Uox24RjMOKicbDDlYiDZRwF2zcvdZ\nS7O8SpQXdCfpseFg0oa5eW9HFu5T/HF58VBnTIuBKzVtHm5cqv3q0RMuqKXI\n2/KExqo/jqQFmk4o7wiPFXBvfGdPrEICaswlNRXcljfK6hqxBCm5tnfJxYJH\nGtNYwxx6iS4rD/+KK5lyRZTdjo+PS7C9ngJIyJKKJvoDGQ5Lm4VX3QnF6FTQ\n9NmtuC2i8x/xDEFuO7Oo+nQSNmhjmbzdumi2k4JdD2s5KImeuzbsceGKYyWO\nechUQ7MAWhLUzozgDMUD/d9Uhe3Wfug6hbv7ykS3sBtW6DVbQmM6RMTZGIeJ\nr1SGjgGMFWNTgvamq0nRmaeWXcXTLkPHyjrpedXdRpVLy6sCEcHO+DoFHCBH\neBayEFhZM+tLXBqALR8RV/MnvZqjl4mUDubhCycTPJA0QlDJfJMer0mTZZyx\ntiCtgw6h4st5w3ZhwIH67bdZp60IwGH3VVVgu96lYivuf5xdeTsqXjU65l9X\nsj8dNGM/yAeE3FB7mjxru7rhm6SqWuy/+AxW14vheSRmH8mpv1DWIgQiFMpo\nh/SD50UZM+W4E90mWOOFcxzk3RXjEa/JdIeyqOr/SnCb0Zxbg6w+aepg4dKZ\nBHsB\r\n=8KwC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID9Jv2bHSxvjmwlvt7e/OzgYBzO7etm5Dc20XHTDdm1NAiA7qUEmTsjFl/mukMK2ysm43pw/7E3phOjGVbrYAM0beA=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.2_1612021995781_0.12332535906971032"},"_hasShrinkwrap":false},"1.0.3":{"name":"@rest-hooks/core","version":"1.0.3","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"devDependencies":{"@rest-hooks/test":"^3.0.0"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.3","@rest-hooks/normalizr":"^6.0.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"369b160447e065fa1bcf12268b94ac25751c0e34","_id":"@rest-hooks/core@1.0.3","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-xQx1Q04JYAup+yCJYg1wtVyiGAuzYeIofW6ku28m3rwbe+rvbgJo0PCQYfab0asEYvFT+mmkrRudaHR+BrPbOw==","shasum":"29dc908048cef8a0eb0d96e9c714b676ab41129d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.3.tgz","fileCount":203,"unpackedSize":804451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHBuuCRA9TVsSAnZWagAAv0cP/1IVmBxOc2kk5kHyJ0Jr\nE9vN/utaLjZfMNCPqiZs+dWDQ2A2bTrqj/4b2TUkh8Xfxb6QxVjH6rqGBzWx\nKF0H8ehyierqvMsIJh7/JfzRHek39DKyIZqIoTHLMVyntVajOecAITF24bGu\nkzBMpHpVJGvQ32Wfdi6DBLOXQxh6QoFEz00sxHBSpAI5XFJ/9U3wat5F+MlI\nJwvfYMIuoUOqVuDQX+MRLR+nhrRjB2+cfj+0wMso+7Q808TIHtqmnF3kfRTb\nMW/EfNPs2GNbp06G+frhzMH6YHdIMHslWhWyJ9Ao9XG5OMBYud0PC4nRCwL8\nUk4Qha2sd6Sh8afAvSSOG5oZyW9Id2R9ulUiYiHiDlXgWY/+RVg925/59lST\nyHSmAE1ECeaCjrUUdMZw6MAGutke4XtRR+Y4yQ+ZUW4zElnAoeGHVVwOxMd0\n0JnaauKfQynVFy2fE/PUV56n69HgjoEKU8lun9fy/e+LI+z6hSeKCS26k65U\nQ0VvKWxUuTonLW0YmtQmAO862fVAEL/evqaUrPCpYAU0Gs6UBe+bTiD/9Qld\n5RS8CvciQbsGfK1vJBt4snDCD4ao8p4+9ex32DC6ehoM6LKADGBI7ElGrzt2\n2NeAQDUe8pPRkpzwMmjJ7oqt8RbMI3YvDUtkB62PMXQwsaZVm46Rf/NIfEcP\neuMt\r\n=NUW+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaHlyHNnLTdY3nAjIFRi3hhm0WUAzawngve2hAGuLgtQIhAI84z2fnDi4+/Zbv52qzSvfrXkZCfZNUrKbOpryYtOmg"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.3_1612454829823_0.21369752288733768"},"_hasShrinkwrap":false},"1.0.4":{"name":"@rest-hooks/core","version":"1.0.4","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.3","@rest-hooks/normalizr":"^6.0.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9e3a4f6e7c3064caecb33949717e7f64f76078ae","_id":"@rest-hooks/core@1.0.4","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-SRboHvdE6xr2HMGJ2cKj3YZQa7bqFLODRhQgryNIw77Vw9nezkjciY/nusXH7NXoEbQG0Bj8XvBR+8bQMelSGA==","shasum":"a1b9ec2973d3d3a4624ef8d03ecde43cea5d5494","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.4.tgz","fileCount":205,"unpackedSize":812722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNoCvCRA9TVsSAnZWagAAXaYP/05BGZIOp+Z2whXXhvP2\n5mSnA57J3LaaazyVTbU2PyiWxBPsCjP5fr2TlVPY4lU8CC4jCn50NU/dbP4C\nWQ62ySu1/4QKDoUtrFdpf27PCLgSgw8QQDZ8nKIyE7GRJr7kcIZIvCTn1YMg\nmHTx5VfurbJoykAcpgVU8VN2E8QsllFrF34DD05XKAguymgIwiKcaCB4B49p\n4tTfrxhYiVSvDoedmQeBm6NfPKPi2OXQfX0poOf+Ri5dySll6SxI+p2eVzE3\n+GTVE2jFK1lsz9ALIEeIqnYQtZvB4J71vEQCoNKYNu0D6dpP8WsIdAQUvNWs\nQ7T0kiaML0cncqyThgKCM+7lLnq5fHvT9e5ZnZzHzPDE9d2aF2wXrZ1PWAPj\nqrSkSSfpO59p/68Ptz7lIRto0jlq+O5vrNqa/TA+7t3N5pidv5XCi/bmkRMx\nhxWM2gkbXJe28sJ8Fi+WuKrjrLU+h1wu4+2Umd67n1YMFI0jE5fJ809i9nOL\nHMeA9Ln5taxGpf8cC8LSDkkdbgGA/VSTS1D8QoyZB5ETfEZRAp8BuybWNJK4\n63ax0XGBBndME+Zi3ojQ6i3p+3+CTxn3872QybqrYXSDK4Bqe+mtyIFZQ9sq\nSWU3v2vHq19f7o4iAv0cOwtm3sD6gy9SqZ/bLunKcAWUeUcAwSpa00PIvBYe\n2kHu\r\n=2YoG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXD0pZRaDhZM1SQi4Oekt42uAWcxaiRWwPTbUmFCb+rQIgM4bL1GrC4KdkJcb22mPq92xTh8SOw/IZw/s3sVKHCKU="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.4_1614184623245_0.3709837524115862"},"_hasShrinkwrap":false},"1.0.5":{"name":"@rest-hooks/core","version":"1.0.5","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.3","@rest-hooks/normalizr":"^6.0.2","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"71210a61dc932ad8804ceb92b37c527c8480838f","_id":"@rest-hooks/core@1.0.5","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-oaRiN/vNnW9PiVelPg7qN4zHD2pG9LN6xY8ginlAZg4kM/12kowchliRs8SEdPWdkfB8LQhmJwLK5MSLk7YvCg==","shasum":"113f3213b7edeb2995e73b233074bedf1c1502e7","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.5.tgz","fileCount":205,"unpackedSize":812912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOwDeCRA9TVsSAnZWagAAyDUP/i+IfWVuHgq3LCNkLUAL\n6N5r9ztXYs++4ZPa75ZYhkuWwRM2SVAYABk9VmPRqD7Y1GTH3arW0VxyXO+F\nx9nAx+bTw9Ye9DjR1HFBy2N6HDuiyBdO1zhPhlyqnopohR2IhhLTGa7X+gNV\nC7OOSDAC9eqG1mP1lb12SJlQ92IPRXuFeLScyMYL8h4U7t7wSD9ZZ2AEEoqb\n8qnj+dbpV4FaU7MlDgKo4RFldK/fwRfqoEFBx7MiqFRAoEiQ+nbOChW6Ofm0\nLZdu9/JWxPEbUZOF/rXCECGsmFJKog4j8q0tO1QYiiOGSS8sun980NGUXt1Q\nU/puaGmj8fpi42BZ8LMn1IIWTyqzI3mJibrB+XVci8kV1Xyf8qRt+2QMV+SK\nFFv83ICF/c6yMfNIWozLiwO86E4DMkhfDefBTycvo8gZwwHdER6qqjhvIs+a\nZrWoD+EIgppU/Dsn3tME4lynrDKMZy18AEgCtZm01LDXkjhwjhEcCDv/3IuC\nnf8uZqlvCLXy7cR/g16SysyA/SQFwk0l3G7X11X8Yk0Fj2pxox/78+NE/cay\n5/QzXfVlgLu0daNTo7PINNG3fMoE1fGnq9SWSVXpXxW1AfCO3i7qC54MJ3pl\nQMb0q1mk8M+fe4jmkofVbh1xIy7hss3+ct04JS7rMNe2jj/uipDuYLC4Du6b\nHoyo\r\n=/oI9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnX37i7AJO5ov80O4HPLoM6FfKtI/miCsFuZ18WjlZTwIgEu3o3txyyd8tw68GYEcpUcZTJetnpVeTFGj+n4tHI8s="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.5_1614479581816_0.43710936864860495"},"_hasShrinkwrap":false},"1.0.6":{"name":"@rest-hooks/core","version":"1.0.6","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.4","@rest-hooks/normalizr":"^6.0.3","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c63ceaf1b405ce1bda5c41af68980873afd238d3","_id":"@rest-hooks/core@1.0.6","_nodeVersion":"14.13.1","_npmVersion":"lerna/3.22.1/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-fDzZ8EFafteooPHClCWWeX4vdoSNsPjGznuqPGpGeDiaNkrVjaTYGM8JzHLHohonIZcLxb8Sk4/vlqCM3xRXMQ==","shasum":"992075aa6ccccbc61434841f069c7f5045efa4f4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.6.tgz","fileCount":205,"unpackedSize":815092,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPWh/CRA9TVsSAnZWagAA+GAP/1HlFYIXk5i0Ze33EF3h\n6pTRKYWIyty3Sfv1Rm0XtaNkXcWjtUuncyUIoiA16vEL4E8Bwp3Hymaa9LGH\nKkpn7JLSQE4QTfF+k4vPFeI80C0ZRIsD4kf066ORmnEiYEbC73sLo8ujTUDK\nZw3QlpRtlx8OCHytboKWzdYg8DOv+zUotG3OmFjDZ6f6FByx/Etscije2rLP\nLDGQW8aSqCeN8fs9lTA2f8yxK9TMX8NTGJP5gVE3pVsjuy2ZrZ6JKqLmO81m\naN2M45QL6dY2/mIFCB/B5J7jI0kVPyFWJDQiHYmcfW290MkCGhmRXEcs5Pft\ne8Knn8WEDlbd6Jyb/mOzSSu8UmoZTSps+xi6q/ccPhx47d9SRR15afJ+RK4s\nK9d1Ai4HT6uqwo8ta9j0Av7JzESprq8TC3WVhyt+Su4MG5gjpVnQYNHEWxoV\nDYwWpjnQDQE2F/+g74Rlm5a9eCfe0OuDeTLr4tZnNQktzbWVS1NUo7XU+dxo\nM7YXIknKbfsp4G+KKOALYKBdV8HpozJ3Cygwom6+lvLoBMpkDsxVDWsplreT\nl15frxsRhu/88X9KBdCkrvIpBsB9Z8vjH4vPu0RgYPIUeaZZcViqRUOZ29Gx\nFa7q+aVimKFgsOLurVbVe8H3IOrkhq32OqpMs1CpyBHhYKItPjOFpL9k3Yae\nmbVI\r\n=kwTa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaU+uNwk3Yk+K+zs3WAPdsLpLKbWmwMmQHRSPE7vBPIwIgVWuMenl6kK7TqlT5dVXwGDv/3XWFkLqORt3loNdmACg="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.6_1614637183254_0.9069869699648359"},"_hasShrinkwrap":false},"1.0.7":{"name":"@rest-hooks/core","version":"1.0.7","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.5","@rest-hooks/normalizr":"^6.0.4","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"372d3bcbbc471201b9e3ead7ae4c9bfe22fab29d","_id":"@rest-hooks/core@1.0.7","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-1PzFhFcbUk2UIP+HHA95UWn6vLDzsgeLD0QfliuxM70KUqFFhoayMRklMoCb6GU5mEijRAEVKCMnw4tOuXKm9A==","shasum":"87b1da9ff6568d2ffeae5b02547307d3e5c683d4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.7.tgz","fileCount":205,"unpackedSize":815653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQAUsCRA9TVsSAnZWagAA7VwP/3zQtDMtBqonjPYtnTVF\n6j6kiMgHnSHjZGia8/KjIYCCdP7YxWXM/qu/JTgAeydvthd56z132dmeFEDS\nz2t5p0BlNdf+muEKUqvOblyFWjq5/ymxtRxd0c92/u602tOvds73vemf9x8y\n3KcmRuHeOzGq9Z8ccOQwXYAfkeHm7vR28v5OwnopTGYu6eIKkSSbiuAOeyUe\nYMYQGw+BVPr1GwQ97j9HMg7fTJMWfpBGxowuZCcM5UJrGPAXS8W3AIXvP82o\n1vr1PN+K/+YwRwpxDGqz34U615xTfRLpbu5PA1xLGX1+SjVG7oCwoFHeszKG\nWfY15t08e5DaSVeTgrqo2GEX1nvM150+gs3I0yXsywdEMe3OtBbz/jhF+YAL\nlMf6OrxaXwJS/TpLC+0MiQTI/ADsJtGjNlFGbhwO8utafA1gaE6WG+C9ZDtU\nKh5brCxyXvruI5JdW1JyAK8Ib+sk8bUkfidKsXSo0CnSu8iPYojiqrFvegy3\nyvCtIzSf/jbZFXc1DS5843IQh5NiNtU1rel3YC/eRlLOMDPE/keyqXTeCBMl\n8vZ87yOPVzULpO8iFpVJudzo7+gMw6/iTBXkrMFlQtFUrne+k8GUuL/gTsEV\n5cNbF50fDS4tQIq//jZUV49LMV/bDi3PXkV8zI34vSJPI5lx2gdfwl3Aue+r\nnlAW\r\n=Gw3v\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeK4yqlcf4Es8TXUTsQlROeJGIYt6IbX9nZP4ptIBdbQIhAJdnG15UtEF62lVy7wg1H0h3pNFqCr0psjcztxpvoZf+"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.7_1614808363794_0.8395343878144939"},"_hasShrinkwrap":false},"1.0.8":{"name":"@rest-hooks/core","version":"1.0.8","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","flux","ajax","networking","suspense","concurrent mode","fetch","hook","typescript","data fetching","data cache","api","api call","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.6","@rest-hooks/normalizr":"^6.0.5","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"374c1a68133aac25025f69bc03d3f2c90ccca12c","_id":"@rest-hooks/core@1.0.8","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-0ZFlgRzknnQXmBl8j04xvNAeD5Y6qwwxW1GLAL44UPqhZfJmVEqe+GGlgIwFFWzj38IHHCE2n9ErEgopChUNpA==","shasum":"2c9c5201ee8956c896c36feb42106b9d612901bc","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.8.tgz","fileCount":204,"unpackedSize":814566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRrmoCRA9TVsSAnZWagAA1IAQAJxsIqPgZ9+ZS9Xy2Tg9\nLX/fcicR5QsbNiM7UPpst758jo08L9hncNq8lkudDvl/xNIEbu/QdjqzLwqm\nqxgqNpzhmYHqPzKQqKh2PYRs8ZeXdv7HcBHyNzHa0tgZ/gs8M+06IR5p7ijx\nJ1kZJakR0l9qR0xffZ/Pb7rxZX01MtvKovRORxvNMevdkRnkGXa0eZkp7STh\nxBOZeAMBSN9NpMNRT6sp/iRbGWi/HXXBox6QzUrz2j48iWvoaENtL9s5g02U\ng5b4V4pywsYm8WxdseP/Emm0B5FX5OCobrk2op08VlCPFnHCyMRErytCTwgD\neznQ3dEcFCWVrjRqTzA2nWg/D/cRXKTmQ78Mcd2sfXYsT2NrW4ZgtHjSfntp\nJeWw2zfk+BhsTAPzAHjp8Tar+WUZ//mOgGUwInKo0g6Vt/1bNbgZtexz7LV2\nJDJI4wBivqlOx2hHIdxky4TnhsFv4ad/vYMxlV68FWBAHwBkXe4tbeq3E7pH\n+u3Ix/M+bwVg0IIt7tjgUA6WhPLtcJrIq+fmZNIkZ/Ju5UBDC1dwMi9cjQvl\nZxmGsLb6Uf4QPZ8N3dmWk0i8SCAgMOF62WRhR9t7678bcogq8VlFY2BxQjC/\ntMPc58ZyVMZtG/tTmpRVHhlZIXyq8KdodKld5NyrUP0tV8CK6pXm1ULLYIZE\nzF1b\r\n=nnOR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcYjq29b9ADvWUW+Y2lHbwV8FKwQlyvxX2j+90cimgYAiBtteGQvRlgm1hQXW1ERMXj9CyrYtVMdRjyKT0kghxBiQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.8_1615247783660_0.1794263882787397"},"_hasShrinkwrap":false},"1.0.9":{"name":"@rest-hooks/core","version":"1.0.9","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.7","@rest-hooks/normalizr":"^6.0.6","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"f350b75d5680b1928521f20822c67e27f0f7f5a5","_id":"@rest-hooks/core@1.0.9","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-eUDy4+lxEax/kjnPc/6BLD63XUE4NsmAzqBvCQiopLLoBWD8D/cIsAGP2K7U9xeC0HzHGLWBIour3Zgob/hDRA==","shasum":"e69fb40526aead4ff4cc96148baabf92d07918bc","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.9.tgz","fileCount":204,"unpackedSize":814921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTYAUCRA9TVsSAnZWagAA5D4QAIl+WgYoaaxlG1Zi/v9R\nbm4EC6glekYQPT53hxRruWTY4YIRa7N1qkeCmb+OnT7yPJBgJ+frs+bmO5kT\npAyCddi4RulyTMUOSr8EbGOWSXXmpJhGKvkbs4YmnxaBsB5N1AVG/AUlDhIN\nL+Dnn5Ij3cVQE1A2RjiF6vumCm40H4G7i6M3SU5FCLSmShc55CQt0J4bFlVM\nro517pWE0pctzuess3mVETTh+VMxgLbrzLv3Xy21ZEiv5JB+KZEtI0EVLWTH\npzyA3pFRIDr0ZXf/qxAd6cjWacUhNk2dUqQKcSmkUEF/DScLA7O1Iu/uv9Fy\ngE9sLO6vSr1kVSMyHwxF9XQzeriamxhMCb+3pACgWLSLuVhqUfrS4eJPCSyB\nZVPTNAvAUS7KhA42XA5r/2ecv4SdhAqrOzpOZWxJ3ag8jvTUbk7PgLYvUEhV\ndQ1h8MBHyGKKDLcUX3F6ocuXnCjm9nSgMwiKIFVXkr6cCT+OW+VhiL4IUShk\n3bQ4FuTQb1GrLpzULUAYmWzFQCJxew2hvAaeaHa/DoarIrUxpd8fLM2pa0Kl\nrr1+1G5Gg0M1V707OaHhuXsA8EUlXF/sLWg3kt5ug4uerLM71gGmcVQQSjlB\n6NhvhJd8ol+H+N0Q3t6o2ACNkbKLCnT4vlh9nnGP/g93f5T54d5lWcmnVSzK\nI4iE\r\n=d01H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiCY/o3VzfsJQ1avE4iVQNI7HXkz90RXDHKLPFCVNM+AIhAPeK11jcmEGyPtgUeaQV6PnkOmSq15JsrHzI/S2rcemi"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.9_1615691795758_0.46442809770557947"},"_hasShrinkwrap":false},"1.0.10":{"name":"@rest-hooks/core","version":"1.0.10","description":"Dynamic data fetching for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.8","@rest-hooks/normalizr":"^6.0.6","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"0ce06c164b73863b67c04a07b379a2a6a7e932e7","_id":"@rest-hooks/core@1.0.10","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-37VSeTORLWCARjSLB3JZBFJtmPn04aiF7llwaOuVj+Rg3BQe7hLgE2w8xYp+O4rhNg4lbrOfcBFzinaKt3kPIQ==","shasum":"ddced1a3500d61ccf221aa57642060916f72e60e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.10.tgz","fileCount":204,"unpackedSize":815108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW7jQCRA9TVsSAnZWagAAIKQP/3vyUkheSwX7ucu8JtmN\nWB6setK44PKRs7IdCljLOPYra50UP6u6abjw9v+xLsuXiIwElgBXChuB7ojK\nT+33NFCkNaqfAWVr7UdPNLyiwTkblY0qh69JZBnW0d4OCsVjVdof0/2yKfx2\njMcvjS36vOZbioql2ZohNZB0jwgB3Lwns1b+vOpnIhkjZ8cf+QdagwTe+48u\n8VomVMfaXp9HkTg1mA5s7opCuEiwEz1fGF21g7OtLqkjVDPGTKknfM5hkPMw\nGTYu6n9nKYmWyvIj4roUDOIQ7GMoVPqBf4VEgU8PCLAVNcQPPej/GNZDUtGp\n1oYBMDBPoiELcjLqeMHcjCmyh0tcEdcyiiFeSq472xKkrLwoV3AbxHk9oPBY\nrAtYgdjE6I9cclwK5cibUxQJoyU2x5LQO9X7Fs0WP+YtRGMVYGCye1En2M2n\n1yHi2wdMEwoGkoXyUYe9Src2xblYxzQwk9QEHHNKW39qUCTpGc+HR7RYxuAO\nA7Tu63ZVSao+9yrCUu09b2dyYRJsl4xuoeo3C5RWz+uUn67nRs6vU/zg2l3U\n2VST6MiNLQ7roE+9WYdh0NMW3LsQvvtP1CAyf78vx0bdagjGghxeHzXsjIZa\n/AS7QQmo2yK93O/ogbxpI9dU+Rp1NQ2yoXSEk9wBLUpQebl/2k/6xAGEYk5b\n/pto\r\n=LddS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPIxgIWrp8yEr2bFIm+kN0eRI2xj+hVHLju9KR1IhLpwIhAJORhB95cqKTgbhp3C4KdPoVph1la0NMpeJLoWSqMogP"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.10_1616623823895_0.184602466451679"},"_hasShrinkwrap":false},"1.0.11":{"name":"@rest-hooks/core","version":"1.0.11","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.9","@rest-hooks/normalizr":"^6.0.6","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"bb6c5132828010cbf50f27be2ea44a3c801fb584","_id":"@rest-hooks/core@1.0.11","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-wN3jxkvwi7AdBD0lz2ROm1WOcdiXfDCOIy9XVGS1f3ybChBfK09qdkMaukv1GvkM7SFc2IGoEk4T1PYzPXHrQA==","shasum":"37c4b8fcb6a55967aae38e54ee4b2e8026b32fca","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.11.tgz","fileCount":204,"unpackedSize":814075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXZvyCRA9TVsSAnZWagAA5zgQAI8F8LajBlFk8m5N/Jxq\nVuQbpVKbI1HLyf2ks0WBHA8CKgjSFbmEjn5Z0bWaAQp8aOkjnAKwmioRrWzr\nBiNU2lwip3fdVzzsN0OMs1kRx9lWL0GxomM0lIaaS71FRUBXMjQlfskcJ/w2\np0O1j1h1+QCcIioQhsqGbR3QQcwkSWH3KLnsOrEi/MvGWixf/WtnUiqqR2uk\npMAcd5SYTp0RnVFrLTHN9vZKe4BhVeTyXwT+id9DV0OABTJjJgGbxsid6QZY\nv9c8Yi4M8uOOHflnTxoryG79P5Ivfx6/IvNQNQpoOnz/y/RpAGjXy816KS4V\nuy9WbaXrXGFEvtXN3ztguZwSceo4Eid8EfnA9asc4p6p18EPOuIO5v/hQ4nk\negF8Ccum7ql+0rNbl/K7btvvznFTUv0tE7nwu7xJPVZShcUOmz6V56TCgCUJ\n7f0jsXzgxq6s+JE9zvQB8OCgkK1znnFPtcaea1bNAomyzWFYOgJ2RcjDNhDz\nIkowNJKJlDymP2eSzpb/cTpzibKuq1aHX+BtRyNDl/liYTe4pGSlmmZPgeTd\nZT+PCd7XvAQfViEkbyE+7j4/Gn0gu+hUAd50eHQtx4JNM0rkjSCSDAa7DQ9x\nYpiNGLDMlWDt5PG3X4YDFxhJJTo4d+wJkFhx0K5wbwCvDRRZ7zZu9onRNZYH\nK5FX\r\n=YFiw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr5VKCCN6EEw2rBa57SDxpuOl+ieouihJiKRKEytXB+gIgYJhlz2hsDi/qX1erKkI1bqY12HPdc75a59RhStRa0fc="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.11_1616747505647_0.24867574042479612"},"_hasShrinkwrap":false},"1.0.12":{"name":"@rest-hooks/core","version":"1.0.12","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.10","@rest-hooks/normalizr":"^6.0.7","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"5751520320d27212b1ffd21b2303649f312f412c","_id":"@rest-hooks/core@1.0.12","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-I7/t9WdRH/xb+3EklvD4aooLuSn4BHrbNM7MQDOx9794Z0GizskvI5dQ17JW3cl37e2xqVHvIPqTqvTsWPiuqg==","shasum":"74f3cb1e508273b7f9a9c51a25392247605dd972","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.12.tgz","fileCount":204,"unpackedSize":814263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaQiFCRA9TVsSAnZWagAAJhoP/2To/uj1Hiyfd2MOQ798\n9Ezyvp9zu6QvC9eKJd+3b96eQrFjSuy5iDGxl5wSdhLImhlfLljUzEccQiv8\nYreuCLGbseOyG0PzS3xAzDfSmJvB1HIsDs9vcCIWDwf4bNUXJXvmBFrto2ZP\n8PmBvDYAPP3IUwxM1h8A0x9p/joMcbHQ9rb8S5sDKhz3W4QD9j8QNKSkg4vq\n/GbxZ2G2IqZ+baRRVxgDlpvOlB+TISxtM21VCk8ENNfn712ExEvhmz+iuDx4\nsK1ikz7q1CIKZE+bKjzjCzVOcNHu4hjluG02ab62ojjQqk1sIzT+xD8xWayj\n4eKwfVFwyCWiuC7wfSOKREeoAeBv49t/oZvOBsVudI4dpGfUoIvGEyMirNvj\nmff3S1+AEVjWmSAdquImVXh6TT4bqn/3ydq34sChNwx9Zig8meoZfOMSCboG\nzzTE3kzM1ZjCUxzr0mnxcuYw+ZbrgcDAt+8PbBtbBTAm7VFjZRD+bse7C5SS\nhng6XDOAB2viDsnl8dy9QpZPpuJLjb+fiB2EgBrBMMHsiSLpxPcYHCxuZe21\nIkV8j/4LW17vIWdzxDclGvAFleH5fOyouV40RXVA+m2sSUP9eKNwMwoTkgDt\njmwGl58mEWCtzlpOhJ86kIdte6UHxKHwZGcp1a1v9fjWJAWNOKWrNzo4LENi\nGBeS\r\n=kVCL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxrqZVKeyYKwcu2rsb0+bqyh/tybNgpmzcr0Ni1lsdeAIhAOnxlHZ4/a19QB0zThM5PUwB5kTvTYh9hefe09dK+dWZ"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.12_1617496197397_0.49701975951921495"},"_hasShrinkwrap":false},"1.0.13-beta.0":{"name":"@rest-hooks/core","version":"1.0.13-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib dist *.tsbuildinfo","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.11-beta.0","@rest-hooks/normalizr":"^6.0.8-beta.0","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"b8c64438bb34bc1f9e9bc1461bd7e4d3bb4e330e","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.13-beta.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-3bI2LIu1ERoadO+PAkV2hiPeR3DClFZWMPZ4vdoLg5M+SUutJBdI+iBjaTQdo+YL92+0IQ/3r5S2Z6ggi0KfBg==","shasum":"f91bc20a28f08f694846109fa125f83bd7990c6f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.13-beta.0.tgz","fileCount":206,"unpackedSize":815047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaofKCRA9TVsSAnZWagAAAmEQAIlqBV0zHqYXYQwRCY0z\nisQUwj+J9DDUk3G+jjVyzdqoe+fQD1NLvMPasWh8nEIu4lhsJ/+tD4Nm6vNP\n2JGIKyS7vdkW7XcN1myISbFH239MWxYnt5zOvw7cZK//tdJ3bkd6JB3WbUnp\n+YPE8Ou8+F4BzUfpzdv3MhPZ7zb9WbqW04Ei6KFWqMeHfJC60cY9u1oZ8dys\nb3pHNP8VwB9d1eseseMdhyDqRU1NIpsU241o9wOKHegbrP29l3gkBnjbZp8n\nOExjC6NeHfkygmJ3RNq+h1accNM13Ka8FhWIeSmezjwASQo16RIS5J0QAPP5\nzr9ilW7vJKXAbLKhUMz44WUtJGFwTOXNkIKUI2C2z5wNyqU7VVg2/6QYPVYi\nhe0JYLTktTlyGwBDsbN6ol9tPvricDYe+1714BQaXHfWlqMWSpc7VEcK10Ny\nIqZApPC2qyPOIx1Rp/ItwQwuIdIGkJbhCwURHgOvT9eLIqhWuIaINR5M9cFi\nhcM/bFtTabbE4jvWbALnXoCBPrGTZDczQjjb4iXzZAoI/slsp7yPCBjoJNek\nvIudXumioUIi46JFG731nRI0XyN/PynvM/GYMVtsNzZcLzS9ynosL4W+wMfs\n9IVVMAXYZfOOdm8wdo7mT4aJ651+ea0TWaQoCUIKAEaCs1dItPcI5Q3MXDJf\nfCb3\r\n=Egm9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZwQNHG6d4gPF3UpwQeX7/kfQUido9dbaESUAd7zg+yAiEAyXnmFZXC4a7/r4PyBBFk5ae1ugGqpHw4kKF0m8fKlzc="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.13-beta.0_1617594314332_0.8293606214841425"},"_hasShrinkwrap":false},"1.0.13":{"name":"@rest-hooks/core","version":"1.0.13","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.11","@rest-hooks/normalizr":"^6.0.8","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"0ca6c375c194819877e9fe5c2fd57a0e85a6898e","_id":"@rest-hooks/core@1.0.13","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-C4NSmjY7koRsDPfdUBO4cDdfiXJ+r2feRbBA1yPvmqpER33XDRjK5lbzdrwFiK+GKZolq37d3EMCiQH30YI2YQ==","shasum":"78e0612b04515a7804f474500c6c00cf6e80446b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.13.tgz","fileCount":206,"unpackedSize":823325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdEh3CRA9TVsSAnZWagAAFFoP/3me3f5lbPiE9Ups6Xfz\ny6OtIfurZ+rBjZNYPNoM66uGTAxPm4Q5yuYBPbq4zgjwMQ4LV4wGwN1aWEAo\noxbpPle/ULX1I8cxGOOTX/niyjCSqVuqY2XDdHw4EZzRW/vypVntZZAVb72T\n6Whx7KjWznMjxDkhwL89EZCMNdYG9rARGB2T+Fk1yWWX/q5LE0gabD2n9n7P\n5EHaTHBsn1cG5ZEaxZQK14Fh9QDGKl3zkQ6tuwa26neqbtw0NpKtZQ6VSXDF\neYCguPbfmJUq71ZfrieDewCX/DTsFiNQRVcbPZD6S0eDzg+lZdH/I7R2DgGA\nKmtW4h4lRMey4kOFrjPkqZXbuZa1nmiv8snyEUfkq0EjmSwLMNHSEg8aZf7z\nDQiLNVsW0C9iyg8r3S7mNJ3xhXCFY1jUNrLh16hPRyst+co4LyPil7zu38LZ\n+ke2AhmgsD2kCTHBEmfOsVy0cnMpGSvm//YU7xzU9fvx67hZ3AMG2A2wsFW6\nutNnxCMCHPBOEmKnPmhar1uwm0gblLZiYkuBK8h/mO+KX88SrCw+UqUHMvhe\nsSQ1NDPTaeDI209VYkUI5hZ8n+kMOBgSrDU/z9Wp0047YzJ0WaIy2DcVz6rO\nnydrbCh2xSl7UQuCFTEFpAR46eaSXnv/gzJb+Ite9R03sQQKA9o60eFhMdbc\nN9Gy\r\n=6/E+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZXAMfC63cQmcv7B+sVXTXflkUbA1hFbpbkwnJ7HQNSQIhAKiZCDcz6TatUyIH8uF115dWOgjB4EAdDlmQ/FnXlSJb"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.13_1618233462679_0.36757800032250443"},"_hasShrinkwrap":false},"1.0.14":{"name":"@rest-hooks/core","version":"1.0.14","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.12","@rest-hooks/normalizr":"^6.0.9","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"fbfc12895344985575dcc9315fd7f6f1f49fdc28","_id":"@rest-hooks/core@1.0.14","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-K9YGFhBv09e1DbcwEQwSqnqNGi1rdV7aiU/XJQIOX5je6TGWwmc30Ca2JeWk3dLUMftjjpCTvFvsQDE93032+Q==","shasum":"8d3a1b46bdf2b07f7841c415c2187a2031b76d9b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.14.tgz","fileCount":245,"unpackedSize":884278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdGeGCRA9TVsSAnZWagAAqO8P/iNhVXEc1jhbhCgrSBkb\n0mkTzibuzPZ3VJ1MsJe8KQXa/mwV6TVld2uixNy8K9J6CcNfdH1Cs6d/0m1H\npO/O8LxXechYTqEZXJ/r94pv9uEjs1/viboEvCSEDix1o9ixGS+5kn/HkeLm\nXXNs+2Y6bg9Db2O3h07DhNVzuwlSepCBP9QX7WABcf5hX6MIHhbVzS97eWGN\ns4Z+RPsj+MePuVEmL5/uTlDHY/r03f8Xp6hi+dRsdz+xw8KO5pKvIwjhV0u5\n0PMnIHn5meCP4lmK91PCZzdf3/o3udRhsjGRSHZiH4Int8RSzVTYhhs16Ald\nZqGh2lOi6sPWZrkIgYG5BeHqD8WuGt36RJbhv2V9gB6/4a6Dz1A0HyGcWjDi\n9sGKhHMYRkM3YJVdOApgWXRk4N31+EjI8Njo5banyRnXpWzhjVyrYddkdOvu\n1O/Hc0p5TkDAvvmkZb+oicXweiqi6a4bhzSwR3/ZDz+2SoDxXX5aTJuSCDoN\n0vVP+ZCXymXmdV/bm5sr7xFKn0uyVbTymm53d+7jPM51h7dTyWB+yN2cEK1q\nro0M42hvXQiFB9dYVmkPonwd4+eF8dDpCeFz9onEzNMWR2qEu9ejsxCbnCY3\nTm9bqCWPjfK5ECfvYdtTaMd36wOX+AMkDUgbx+Od8J3bYnockdE9MI2ueNGS\n2U1f\r\n=OHGi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFnk7v7e9/nGzvubHrKp26DMoxeWhSqQwDiDCF20gNOgIhAKy083qqVoZcanm406VJYNunEh1r94JCMAlufX4L8qCu"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.14_1618241414180_0.1988418082156007"},"_hasShrinkwrap":false},"1.0.15":{"name":"@rest-hooks/core","version":"1.0.15","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.12","@rest-hooks/normalizr":"^6.0.9","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cae4b4d91d02849e5235f0c3704b3a17cf666881","_id":"@rest-hooks/core@1.0.15","_nodeVersion":"14.8.0","_npmVersion":"lerna/4.0.0/node@v14.8.0+x64 (linux)","dist":{"integrity":"sha512-57Oh3Dpnt6i2qnqf5B2I+ldy64r8nt/XFEcUGNlPeRNb9eulrpasmgiPuJ+JD+T2RdetPQ0ojI0Iwe0HiTCXLw==","shasum":"0231175ee5d7a2ca77410cfe710a88198dd3a2f6","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.15.tgz","fileCount":245,"unpackedSize":881985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdJO1CRA9TVsSAnZWagAAwqkP/3w4gHw8zp6KPxbCwHaw\nHTcGNQlgIJuXfkFBNwoKpYqAKzZ5CwGLqyqeT/HzGTgtH5rR0uBszwmLeOLT\nuBhH/39HpOP+3em0tT2vt4nDQz1jfjvhvFte7Y/skhH+msLbIZNVLyoJ/T6/\npRxiISkVVcnzwO9lqzia+zrJVzYMlR0QutPyHOi4q1EgSw8dvWst+zZ5yYQj\n4Sb3cwMxcGJ8SdQjIs7AOYkwziaar9YuIA5GyeqSPiZrKLM4SJH1HHp+n/tR\nf/SeDUADGlxypNFP2wmVohKd5oCKHQqoxB12Dqf7F/Aw+pVNCXZxEVyjZeG0\no2dd7gZWYW+80Sdedgeyls83qsQSNPVVc4DNIzBXYCwzno1eNTDOczYSaK2k\nsSjcC+kBPsgWUDQDE6ffnbOv/q6ENkDS6q83FRr+qhektG7M0LSHFTRdR/Tf\ndxGBLlfoua/14kuyvOkOQBrgfdm7MI5ZIbq+LwrQcAZnYHoBXV66+KtRNfoA\n9rLRAQ51c99nE6oCHOq/Fe0rjSun2LErIYeTVsKuqicvNcVlLeO+gUd6fMUy\n9k9qx3m/UsOxpTZDqJlS8DeIoLoCzSM9Ug/XYcZ2xKIIAMTIUisXxQVRn9YL\nM3A5MyVzgYPydLoRKFu64BJPAH/ReT8JfIvabOeWN/uKoVokZp4seqd+hjHo\nGNn+\r\n=Vxi/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6o6SFOgIWPcHczSNrRIY+jF/Qu15wcuhkFOrLYilrrAiBk42HQnGweQdF0YJ8oPByEiw+L6C+NMPjqutRU3ZU3UQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.15_1618252725081_0.10826355146402022"},"_hasShrinkwrap":false},"1.0.16":{"name":"@rest-hooks/core","version":"1.0.16","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.12","@rest-hooks/normalizr":"^6.0.9","@rest-hooks/use-enhanced-reducer":"^1.0.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3c7a8b85680734a507036d92ca16442db57ffc56","_id":"@rest-hooks/core@1.0.16","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-9Owt4hACJL6uwarEfQGn05/+hTa/GIFiSsQA1+ZGd5aIOX3LDC5gEXbk1AI4mScDmHrorWAVAy2YsLg6oHWoVA==","shasum":"33b3eae61564d2cf6730ed5e96ee0d7d51283ab2","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.16.tgz","fileCount":252,"unpackedSize":880428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdcvaCRA9TVsSAnZWagAAuXoP/0PifSRTT+zDBFuaFcTc\nbEq5G9PBj4jCHY1azag0GpygafifHZeZKabq2ytv8y5sBtzaMoO5EP/k4q2C\n58419g8qgGY/JZ4wfsh63mJ8oBatBtIB+S+nrC3/zVHzi9o+8pRTuc87NYFB\n389B9ciD0iWrNZKrVqP28QrVESErLYTdPGzAplwDRpEn6y0lFXlZzUfzPLpB\nA54wlpNLpOOLhAsCnXEPJzrjdH20dlVuBYcMt+a6AFnizkPAJj2JeXjYzRVG\ndEBA5aQZKOonqp6xUK1DaP/V8LsZlEA6j7l6tOmrwHejAH3z38l4SA5WEUjg\nxLi3824OuD9v2YHQ5A8Gs/w7AiyW8k+pL9xXLB1xwcRQr/ukbcEwQYd/F/jc\nzcVUcEnNYwxEVFfU8Z54AgvfZrHMn7qLt+x4+H0lGpZAni4YZ9+Vb8K2M0VC\nfPSgvqQaF3xujy0SlExVIWpZkEEQ/TdBPQqbQ7Btwv80qcVFZCNKWb+OGLY5\n97qBuWpnsVQ0TItdjSyYfhnkKMJrz6lx8hgMjwGfTeJXph0A1lgSJEOdHGi+\nWehUyrW57vgUWwbmkDMWbvtQMNUlKRBZLcclAOolm2IIY58F9zs8CmoXws1V\n3UOhhrWJZwqq3jllSpyFx2p5qHiIuuKz+fCwOWneqwQLnnZjDi6bS9yF5sr3\noHmS\r\n=dpG0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGjFzqF4T+up9zEdRJ2ZhFbufk7PboV4a1F6bKugouMxAiEA3tv6eEdrCLbzXi3wyvVpVmGIHFiSZC9dmby6X3QKRow="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.16_1618332633759_0.4693507615108603"},"_hasShrinkwrap":false},"1.0.17-beta.0":{"name":"@rest-hooks/core","version":"1.0.17-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.0.13-beta.0","@rest-hooks/normalizr":"^6.0.9","@rest-hooks/use-enhanced-reducer":"^2.0.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"68a10e06dc0718f5e480097e6056a7a7954d1161","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@1.0.17-beta.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-CAjw3RIhYUOKM7rnZmHl/lV2I63WprGMl89wPikn8M5/OqAGhLPgSqpnp8tQh9EAoFf0/X7Mpb5uDqw2my0AEg==","shasum":"1e6623aca874e40798e62b349e8ef03ef7a878e1","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.0.17-beta.0.tgz","fileCount":252,"unpackedSize":880650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdf8lCRA9TVsSAnZWagAA5AIQAJ7a1BO4szPKo4YSy4Ag\n8gloGM32ME+K+I7ehInZ7bD7CLBWKawcajnCzuOXqqf9PAROx+b1DhWPKh9M\nfeG1xDoitacxJ3NtHa7qcm1OL5MmKTKYq3G5ig6A6ziVfXHjvACA3D7/PV0r\nM/tdORM+IFKhIUUpxMQ2JDmrGDkEDgldorJMeE/Vkui9Xcib0HM/EpkOSst4\nZPsrr0mz8lIkP5//3O01ViGK3ACriPBXQ4Gk05gn0rwIeeDFT/Utq9hI6dF1\nvCyfhmqOUz9e8TXdztT9np2Ybw0bmAzx0BrRPdGUU5CQtmXkxswk9YE8RkCk\nip4XYyuwONJ4cUmE6QddEY78qhrB9ZwgBCgeZ4YKoF/cmOMvPod3EWJVNhCz\nwaAbhRLXTwQHshOikxub4c/D6ERSPAyphCijb3ZK5nN2TL4PziKdhEXXm/xF\nLeTN7xjAWUf5dYSAfO9SPrQ8sDmy+xTw8/0LPaRHH05p8liozQz2fsoZ2ZAn\nE/sC8cDo/5b5bM92PITSYHgpaR5VjAcmdxTdOrT4slllYxtpHGMvUoV56Iin\n/RczksYRpL4FBXwpjIdWEPkwx4/fn1s8UmB6K1MmYqzWrEJkN1eE/s6bqkOn\n3vJgMvH00leb2t2M432a45zXA3TvCT7649D9I8qZBp8+EBOo7qgBbZdqpJXW\nY9V5\r\n=Vqj6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr5WZutv0hI1ViyXgSjKoczjqniG9Yug0qcVNLgVTEHAIhAJNlPccqHT9JuFcQY/A5pGuURlK3yoohqvWK0xalJwYa"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.0.17-beta.0_1618345765349_0.15100705618817467"},"_hasShrinkwrap":false},"1.1.0":{"name":"@rest-hooks/core","version":"1.1.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.0","@rest-hooks/normalizr":"^6.1.0","@rest-hooks/use-enhanced-reducer":"^1.0.6","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c3f09abd47faaeee0616e8ba550c0b6f1a444ee4","_id":"@rest-hooks/core@1.1.0","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-+VfrQQBdaHTNaKRJSCuXReOislk1VP0+w+eEZMjdVnQmxxo027dD/YTHl+OH4VW03sSF33KodXH3rWTUyPar9Q==","shasum":"509edd7af88db89e16826bcaa86878157c459982","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.1.0.tgz","fileCount":252,"unpackedSize":878457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghI4hCRA9TVsSAnZWagAAjuMP/1EhW1VWKthy4b1i7Sw0\nmdi0i8p4LTfvou8eCtxpqWIZ1LCFoA7iUXiu9hFoBRLzbphi2eS6xaA6W51j\nPFdAw23YgrZp3fS0ZgMTrajBVbcjzX27pNVvsEf4FMLj5tamrhbOMB/MMcPb\nHmXkWQp+gX3T5E2t7fJvS47lFcK6QmHgCYOaJ6ji33QFl6yHDsgTT2rRunAR\n+zgnydAWbgxLP9+ogZQ5VFiGVbRU/eNF6TumIeu+yre7d/DEbRay3VPFoZJS\n/zjFBltkMJLqnPdmacPSZCZVgA1ZNpbzp1RaEbaOPwcbbobdWO/+LKTBDo9e\nyVjZA/ZRT1N3b/NgXOBPo6845ll1U28h/FFFNG3y5wde1X2DuYDTvLfrJ8iU\n/hC7rPIzm7/ta+LE7rbTXkJ1MSr8VfUXxngLOLykjW396bRYZRje25xclf92\nB6tVn0ntuFybU58xQoVSEb+7CaL2LCwbhLmvDdP24kaI6G4wArb+nhi8l8ey\nxtSUf4U24SmFf2D4GeiwoZ+5Rbdm2OnANyfrs68kqUgSjqyHtuBWLVJGu/aR\ntU6iZOMTLAtj89BRtmoQYQzys2uei5GHwG/mYTswXkfzaX2Kjn+rRo6GeCvH\nqeK2JU4edGsF/nL/QD+5hDi6jcV+CrpHfvaqiPFRcBW8CL5U6cX/OwEo7YCD\nnF1E\r\n=76Vf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWmM12AZHXkjPhYjQve6V127S97M7B8Jsd+foPKUHKkAiEA58R88QGynhlKkmzDhkiFfcSTPGnAaT+ZIkqstpSuLpU="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.1.0_1619299873241_0.041678928862296294"},"_hasShrinkwrap":false},"1.1.1":{"name":"@rest-hooks/core","version":"1.1.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.1","@rest-hooks/normalizr":"^6.1.1","@rest-hooks/use-enhanced-reducer":"^1.0.6","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"05cd4da122d9f77eb917fc06dcf6a82d39e13b6f","_id":"@rest-hooks/core@1.1.1","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-M5ioDo56986ldngLRYtbyeJy98MR3d1RfMJpwhD+UDkS0PyNf379q/qbZLCMRIlZVz6t3Z/OG3/Mi7ohxooM7A==","shasum":"01c58a0b6cbd06b8a8a68a6657e9be4579ea652f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.1.1.tgz","fileCount":252,"unpackedSize":880540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghPidCRA9TVsSAnZWagAABB0P/0gm13zfVnhUFaxfOj1n\nU/uFiepVNopeT0ZnsnxI6kl8BLUf046cFng4s6rNPVSOOnGnebVOwfPZ48sI\n87fCc7Vnaz8beXTBHrBoeWm5Pbl0Ffzh9ze0Yo+u/8vHX4RZXqf568UMjkE0\nKPNDPydLCbsSJeAAANoJ/pEfgWEDpIMGBBl4EJ6g2WH9pcSj59u6DwQVQSck\nxyUHwl2j0GKri5vXkeloFeADpkF+1DlwPwQHJQrvjKVCE94QCTqknncVxg+v\naMbWqoZDW38SYU75fgVXwDt0hpKx/VfU1z5lh34JpRWs8C3E5ki92LsOC7qk\nGukZWgNh6t1+8Yxgf8/YfNMKDMTHKJaewLcvJr3NfDP8g669sikL90z+4cmh\nCypAaG2WHijo0G/sAnRPEfMqj76D6rP6K4WrRuSTfXBk6NO1ZTytv2nUhDG5\nXS3a+Mxm9Ex+n8OECaNmfYJbMKEZJwKIq/SBRv6MEJuFjMLRYmef4XjmG0jZ\n8NkzfHlSG7gYow849fnWDOtdAm8/QUUYvRVbFUOsWSFW+QWeDxvBwaCNZWCx\n4jnN3DsE9OEzRQnXBC8sKFsCeSJSqEwY1jaMUXSovy5Ly/r3nVBB0mE65xUD\nF6cFY0pZ7ywMRDv5mnkuFeVD2VmZJCnj3b61nIl1pvl6/t2jmRSYfpZbC0W+\nFhF1\r\n=+HQB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDetJ0Kqcb4is44e8pkaHm+L76c4W9onkzLFphoA4tOHAIgATlODsz2ftMs12P/nHUnDWaCqtcx2ISeM+egf3Ue3os="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.1.1_1619327133026_0.5823220918192589"},"_hasShrinkwrap":false},"1.1.2":{"name":"@rest-hooks/core","version":"1.1.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.1","@rest-hooks/normalizr":"^6.1.1","@rest-hooks/use-enhanced-reducer":"^1.0.6","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cecdb9fe532e646c5b9a97a0ade0f558ef62fc3e","_id":"@rest-hooks/core@1.1.2","_nodeVersion":"14.13.1","_npmVersion":"lerna/4.0.0/node@v14.13.1+x64 (linux)","dist":{"integrity":"sha512-vMluWq3z9cRmYXqToIfpMVki+L/8/BkVwFnfsbt738Nc/OPLCqyCV94vj33L7iptUiYfF8kq+gRX9Oj0CbGwYQ==","shasum":"0ea95b704986bfbb12a90db1529fea3c6ff1f26d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.1.2.tgz","fileCount":253,"unpackedSize":882286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghzaNCRA9TVsSAnZWagAAFLIP/i66iqFZTMh7eEUK4Vi+\nIKibh0+D/WcuVm13ZjQDDOmmIZ71N6dp5q5mWDJ9Sz7X+oj2p2iQrvKNrV+A\nk+Mn7Qi37UrYmnqpRTSv131Ua5HyqtvOcsrJqlZbmPgqG5a2EJvVnoMbKAsu\nNPs+ftLRxX/Hj/nRzoDSZHz6p1uMNUk3HJbWQM7N+oTCSch6Hlgb/wUVsCpD\nian/Tel67x2CQZCqNvpVRta1/xRWW8hCuUWs2wu71thEpBhBRed9GHYoX62I\nkukytL4JzlMup4F/6niuC1oGuHWsODFC2qhprZkUHllCT9x8wSr1YnV62+wi\n+0zF9lfvHx1DZkZYmDDoqd7Mj374YKqCjknKY8U3oYtfq5MYq3t9Fs2RUjMj\nJ8+6r8gVaWYXkC0GmPnYExJVKdA0LgVmQcs4HHJLtKpjOEF/pxKX29ZFvF4w\nvWeM4ZH7rrKc5NacaJveeyhIAR/GPs8t/h2WLRFqJH/PLpJZSamzlqvOI5IM\n3gAC9OyHN2NeS5FY5MrBbrta1gZj9eclMV3xElnP2vE1h1Gv1U7ZGn8hK7wB\nT3YygN7wt5PLXDIhNgnsjgWQVecv+AY6GZ/Jcc76V3TyO8eF9eBmNEojCvVk\na+9jJxN/br7xiQEUrMD3iB7JbhQZjJlBZgwhTqobXpBl+k31o/GVj9JLijRX\nc+qY\r\n=vaew\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwmrP89CJ32N/hk5Dzub31TcGEuKhUCnZIN41ki+34CAiEAiMwFcUTiFIVH1uZYfCF9Sa4RniX9k9mYGvsuA7XBKB0="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.1.2_1619474061015_0.5592591731396139"},"_hasShrinkwrap":false},"1.2.0":{"name":"@rest-hooks/core","version":"1.2.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.2","@rest-hooks/normalizr":"^7.0.0","@rest-hooks/use-enhanced-reducer":"^1.0.7","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"7ed918973d3410b7d21b32187049470d081816fb","_id":"@rest-hooks/core@1.2.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-E+T2McBbX2i/mX+JCw+CR01SL6hDi4T1bbAVQRSoG28Wabyvy0NWVkL5LiEld+fPpp8yxpb1x34QuFOlqo46Hw==","shasum":"a4e32105c8bb05b0bb35cb4f042eb88c4df88aa6","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.2.0.tgz","fileCount":253,"unpackedSize":879684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqycVCRA9TVsSAnZWagAA/YEP/i2So/oIB83zNJcGnZO3\n4ZwNbILXf+TLq7ZX5rlNM+MHYmljr3ftAI8ozE3bjvxyKF/c3+coBQgCYAgX\nxECwnxNtA9sIuD9WIXBzenc3l9PdjMONOiwUzijBxnvgSOtvwkoVZD2NrDLT\ndLhy8yxshIDT+k7mjWX1S2WGpynNI4vSERp39tP+pt0a7BYCWI2Lf35jPzxs\nkZ6aJ7S/1UaayOh/PWInfVvk/7pk6vjOT1KreiN5PkqFaWXpS9S58ib4hXPe\nPc9zIcdnRoRTHbi9X0EpFqTyh5mNi4mVnYp6g5QWiTFWM1f9LiwKMbS8pggn\niDvIca4ussRsiJhUEa23TUyuNpMv892CvMtx7Hg73n21TvUtKvTJl+ZDcrey\nvotLwAPoJryDj17h7sL86COxPSWXJbOHEZjQJUj6vlRizcM/x7pnjwIBu5jH\n1dRd8/WOBZB3EkBW3MMJmLJ1qslav94zXrmQGVyhmRzeCTvi37rr/06Fui2J\nd/eCmmNIhtKEFcdLCQh3TpuFlE7LSgu1yukTHbnQNHG+GxoAZl2GsnWuN4JJ\ncJFuEFluKYfnKu9jjRafAm+tT5UtNeo9MAp9W6bwESHZeJgtwuJ/kf9pYp2Z\nV85j7ZCHJaoM69Sk3KJ/D6OU2D8nAjf/fdHWCcf5L+G13I4u+fgQSfeb6dII\nCq4x\r\n=xloe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyvQKSmLhP3UvCuISjakgZ+XS5NKqZeIeFN7Cz0vW6PAIgaZixdeigAYynbW5kggs73UXvSLfBA3JQMDY9cCca3b4="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.2.0_1621829396540_0.5070584957742212"},"_hasShrinkwrap":false},"1.2.1":{"name":"@rest-hooks/core","version":"1.2.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.3","@rest-hooks/normalizr":"^7.0.1","@rest-hooks/use-enhanced-reducer":"^1.0.7","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"8f08fbe6f2fdaae40dc63c3d13081a1d2b3c97f5","_id":"@rest-hooks/core@1.2.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-6SqTdp0MEumYB5qdI/+uLypzbyEAS83uUp9wlas3M0ebmbA5MhZrKWHLeEg4j31x8B5LG//bSe22kJY8nWt45w==","shasum":"569fe396597f4c359ee22fe48dfb08d7f88077fa","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.2.1.tgz","fileCount":253,"unpackedSize":890083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrAneCRA9TVsSAnZWagAAnCIP/3TDjcbAJ/NS0cjrUOA6\nlrKW8HPTmPo6Wve17wAeflLEWosJ0EDddaIFsF1DHRG5xX+jM0sP3bIR7DPq\n/Nf+48Anenox4caYD2gJnGPUxRzP5VrwO9S27YTTKuyvWlWHT/PNYZh3Zn72\nyc3yo5adXArTQKr0hJiFXzNyNW6tCORrDN3BliZ3k04GWZcM/Jj2RInIDJcL\nn5x7jCfAK6n+t0L0+M6PqWCMcV+x3swizomppkUIiXe/L5GaKYZA7+IfOr6N\nmXG5fe+G66GZuVcCjYxB89ReMKPX2oz7OKD3g9Kll7dWFfzu2xbaZhBfQ9sy\nAx66on9+Gug2dswUoKMyuoeCkIzuEEZQDOhRkMm6U5G5q2Ks2fd8ib0dkdF1\nmC8gtYPXbpYS4uW94ZEdRlbXqozB4fXbdpNC1Z/m2o28434dCyA+Hq8omA9g\n105Mt7YI836lrDNMZAhDIGw/tsQ9tD6fetEwjEN44cop3TQ4Xri9RHIZz2MO\n7nkW4E6RmmB6Zlm/VibKjM1aCHGHqaig5fxzOQSdeWy8oOzG6uDvfigJ8y/o\nTAIqCMC3HNpuUhPZopu/H9D9i45Dft4PnY9lJ1ndSUntBMWAelbcGq9nspxM\nvwN0q8cHRdtq19/fXs570Bo3nB4c20NiQaYtsI5oN6CBmfvKVn+CjfZAs9zj\nFfUm\r\n=4gaw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdWi9j/PJAs4p5V87oFSfuDbWoBe2/1gZTFzxLCNyRRAIhAOVzIMgNB50qJl2wwv3U9fzBTXv1HMB4NrWXJBW9QQnD"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.2.1_1621887454028_0.6991222184633186"},"_hasShrinkwrap":false},"1.3.0":{"name":"@rest-hooks/core","version":"1.3.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"*":["lib/index.d.ts"]},">=3.4":{"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.4","@rest-hooks/normalizr":"^7.0.2","@rest-hooks/use-enhanced-reducer":"^1.0.7","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"ff04c3ba45467581005e7492640d389f86b9cce1","_id":"@rest-hooks/core@1.3.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-6B0mMijMjDmiUGmnGgYLh/d/etD2s+bYMxp/z/Ihn800NaIDS7INvGV4vl5iWQi48mVWhDgmKMOXFzfGdlS0RA==","shasum":"0b89fbf7472c4575c1190bbf71de7ac8cb12ef67","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.3.0.tgz","fileCount":253,"unpackedSize":897521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgsyPnCRA9TVsSAnZWagAA6g0P+QBMUMiHZfju+I4e1dLT\nQn3fbMDN/kOn07Hcm782vtg6/PyPx1K+yClArgFPCqAh+jVC8rTKViSqCOJe\nREIydm0S7BQeML2gep0d2i7NLlyzbAAUrF6kFlpXTjYvr8z1auFmfXG/OUVd\nB4GmNuyISdhQpCrUCWolv291yLaWBIsagOwx7xRipUrdd+ekbq4TUVTW7XfX\ns4gSgo5NQrW15zhViHTz0U7JXc0tvOMIUmWdAV56VvAPYygTdReH1upEg/Ky\nSKck6qpwyQ39hRdxR+jaabd6oVnteFRjTFHD9W754CcUwzLGmi0ann/s57UG\n3ciDHRaJa3Q0aX62jkxRxJnfYg7YSCHCC67VraGxRBSgrOsGx6AhsEMKQ4VV\n7JCWvtdNio4KckOqfmfSXJAcf5hUlpEqYY4/cRoP/CM8Ov/u5vpTZAtlG35m\nenFhR/vQGHQUpL/MpN9KTENXLYbt1JG9to2+IDL7Gok/oqIoHXnZPN0ACLac\nVVLuLIEBc2KZNGgWpjM6zMRvajI3VDgLG04uPV8kX3sd/V43Te4TNbyR89JT\nADN7qHKe1Vk1xeNRF5HrRSLb2GGQ6epQ9S/KRUvYx1PqqLlffq7JJl7Tmh+t\nPhIu13Hl4rGjFuxV0QZICwzsGyWipznoGF1uoV5+qCd3t3JPxorv/kMmY+zb\nv04o\r\n=YRU+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNB98KmKtdi8Jwo/MmO/+SprChKYvnrnnhm33UiaGpnQIgEjwAZPCr71ylQZ58INyVIEbkQz+ErEVLXRijLpBQ+uQ="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.3.0_1622352871005_0.5143524980779781"},"_hasShrinkwrap":false},"1.4.0":{"name":"@rest-hooks/core","version":"1.4.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.5","@rest-hooks/normalizr":"^7.0.3","@rest-hooks/use-enhanced-reducer":"^1.0.8","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9e0ffe178c28280cf1fbfece3db6eb75d528d0cd","_id":"@rest-hooks/core@1.4.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-Wr4R9r5FeErJ9QDm9kJ3wh2GlaqfxDurlrKAVTbWhQOy07ggx9NazZZ0HHB9YU+JK7+dgsseYJ9ULFsk7Y/WrQ==","shasum":"6389c3697953116c6c2f28fec43d1b6764b93e1a","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.4.0.tgz","fileCount":253,"unpackedSize":898175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguBX/CRA9TVsSAnZWagAAb/sP/RQueWEcbWRTEkHRW6wL\nWowKDw6t1RU8shjJtvYin8EMiHmTUly9eptoF+zWVvHbyhETImczvq/1sAv5\nPz+62y1d3gYT1eU829RyzrRptnnBWxhi1jrjYx3V5yYEoSg714Usa2oc2ARy\ncx3So0WVN3TYmnSnM1Pu9VRE5e575pdD9lKwKKpz7+NQPk20V+AGUnVIN5la\ncscIBojPE+xeuN5eS/b7H5bTittSo29vb+uVpnCj8ZfpYW/W0mslYJv0HZZV\nAlcTzYPCwyTAhi9WtKBzyhXBGe31sLM3AvUvQByyc5Mc6s7v8EAIo/Ez9WE4\nLcGdSwLjT65sXRGYEkwhkWLCc+qzoVGxysAsxg0CL7Ljltao81fZ93zU7Jy5\nXH/IYWX36crnkGDcEjI846hREyet6mjV4cYyWPVzm2DhId5QRvHldAunTH0F\nGZtm2LrRfbO2ANjXB6NTFW0iEu9RDTT9AOjfTAhf1LAGWUMBA+dDaUVQ/E4e\nGeQH+2R6CUWbAtfbwry/2bTj/sqSsCBh59kbQIF2WVmIH7DU9FZHfcs6TqoV\n+KHavdl3utyHsw3kZWo8VIKSUQhI019WZ+hQFT6uT2lomJC1dhZXW90nqBwl\nZHpLQCLrWZy75VslTdJOxBYfmBUYe/3aod8HoSQhNaBAi1KCjR/0yNjTtoif\nGQBD\r\n=iGul\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdEDqKIClAUnOuSpH7SI4ohveqqRx2HMZMlBkuZ4BsYAiATU+dE3FciiJgm/pmtjfwDheJhO9kNdGemlh0nIDDRDQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.4.0_1622676991804_0.2986796156884062"},"_hasShrinkwrap":false},"1.4.1":{"name":"@rest-hooks/core","version":"1.4.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.1.6","@rest-hooks/normalizr":"^7.1.0","@rest-hooks/use-enhanced-reducer":"^1.0.9","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0","react":"^16.8.4 || ^17.0.0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"6316c051a883ff5670fd90f3f5185f04b9a7889c","_id":"@rest-hooks/core@1.4.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-DwERkv9FAJnB/GwNsruTIQvlMaWBYbCHokkXLtikodWLcMoxV7WDsNSlSXzCCqECWyPkoIaAPXfxO2lF2lV9PQ==","shasum":"0dc890337c3ea95f98444801fe32675c49cfc888","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.4.1.tgz","fileCount":253,"unpackedSize":897666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwSt/CRA9TVsSAnZWagAAqz4QAIK0Wn4nmJqAu9UQY9yi\n45ViOfxP9/dbeRgvxzSXuQ70yv5PfMtUj50FQk/kL0wYq6hc8bJ5YFscibs3\nAi3Zq3Fl39AvY/5+X7LNNHqyYpb4+qDrfowBGdmPupZS2BHzUdpei9INfTD6\nCTphKIG6BU1O7xLNPnebp2OfXwU0dbrnTYu1mB7VmCpZVf0EvlJUWy9rzBKK\n8mCdBVKYgqLAssBFtHL1IzsWAUy/GtsSn3/8vL1x/X2SoOeio2zEbPcxCpFI\nlSQ1GMij24etvoUy/h8nsl2nTdohkxLwj8p7u5/ReTNnsJjUUslKRMnfcuAF\nFoTx/+6AUpuYAlYEVayPOFTPUwmH9JSsqHR9Jl9oQO8j5xZjL1FQpdkhdR+p\neKpfSE3tEUDBrOudmA9oB7HbTwBoupFyabpzwwKM6pZDqgWV7iYx6OuIVe5U\nwQOZPExnryPwMc0gpX+P/ZcueB8CSiryVxfHWGn2YA08D2ToaSPGGjjsfTxx\nd/amhhWeBIoFawa6fs1+gQlLRvP3nhi4BZNrIIN9/p4753aQN49YS8CcD3pF\ntvdDhAcuUgPP/Rultst3qvWddaDVd71kvthrmMiq1BbhoNLng26mytZwgL7q\nzOOUQwovkB2zHOBnGh0emRT49DgqghQQ/mvS0d4bdSw6/9Fb6rGZbhREiZhR\nmCC4\r\n=ulEb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo2jdPhlPU4w28gloMjJU1Xwa9MNZ843jDhECHA08VCAIgEtqazERI4mFXWP1qpSeUVAHc8ujPWk6B1r77tPQaVhA="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.4.1_1623272318839_0.38945987709127117"},"_hasShrinkwrap":false},"1.5.0":{"name":"@rest-hooks/core","version":"1.5.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.0","@rest-hooks/normalizr":"^7.2.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"18225300621058e9e692c480e31b7da7423ea8e5","_id":"@rest-hooks/core@1.5.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-J8acdwblsPXxzwokjNo0wbGVHBBLSm+lnz4Sr8MDXwP1XY6uLUgCxIDldA5Uzven31OX0KIR1ozWiNK48HlMFA==","shasum":"84659467f0985812699e27cee2dd8dac7167b4d4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.0.tgz","fileCount":242,"unpackedSize":870340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxVquCRA9TVsSAnZWagAA54EQAIBgLN4OGerZuQKA7USC\n4P1sVXlqrzv+xEdMnQa5biIVwzHiMrvFOqe84RlTwdeoZzxPmCCLjMJRQZYl\nMRDfAplRWKFkjvVK7dNZR+TGEpEnkvTm9etUrvOKbuY89TlF4ukrEpJCZtg0\nQt1ocsq7ZZQIwhnMPBXsTm6BvUfuLUiMpBcVt32X3yqMmc9Z1jtmUzlXioDD\no2wQNUHIDop81fCgvU76wRLt7z/PwWBoU6THm+f6zQmqAkwPzlVIOsP4DZRt\nH3Ga7wbI6WJsWxFJL4v2+YFO847lq0fRGqJAPJmgjM2NMTjjKyKlqpmJV/qW\nnWaQ01DuwG02CdpNyUwVwWPo163lmIDE2cljXjiy3221hjo6tCB2A0eIoO0J\nZ6b40M84HuY2UiCM3vKtZTh+BihUAAwrhDGeUfVypgo4mVQnb1nsOxRja5h6\nHF/4P3TeoCVcLG7Cmi24vn9loP5N2CvJCmkmh6XWL7SxcTvvEI6kC+Eb6ox7\nNGwl/h4e8HueXzWxapDH1lJn9hq/cIhjo/mcrpJANN+kgy8i22VsIttKRvfq\nvbzDLTf4B1LgJ/nuGxm58RucZW1syuhFrVpjmMYO0kDbxMD3fFT6l2VvaY3O\nJ4Qk5oR0SYQoq5d6qPlIS0jc4M5/Trr7n1zeaGjlLbzjbCnSQA3fTUtPpuk4\n9mba\r\n=JtxO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtIosOm09PnjtfqX/vU4F7oG13wgoxEFeiyPhwNsBMywIhAKfbikNvlac1REhXgWIsVTIZC3ZZ91DLm+q/CYcda/v1"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.0_1623546542495_0.37014796526608396"},"_hasShrinkwrap":false},"1.5.1":{"name":"@rest-hooks/core","version":"1.5.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.1","@rest-hooks/normalizr":"^7.3.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"ed74cd84ffa8883cc87230da2f6a7afb6875115d","_id":"@rest-hooks/core@1.5.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-ewzZ285NglnNl0Gj9To7Z9yfiCEV1P6Ko1FRJzn+UCBAx/mvAmIa16+7M8Zg5Ec0kGcjiPSyfxkUAnMlvJncAw==","shasum":"7764a0296932453c905f63f6f21100458e207f23","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.1.tgz","fileCount":242,"unpackedSize":871817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyWLMCRA9TVsSAnZWagAAb5kP/jd1UFkKfQ9+MRrZo1e4\nHBRYWJkmNMOFLXQX3ZKRrRGSN1zio2YTjcGOvQHxJPXJ/zHH0kHN9DUY1R/q\nIXUevIxJuFs6XP4AZTOAbX1dSQ8MqKO7/5aaAAqs2psNq/9PXdWA8oTwRinu\nndlSJDn0inKdLPKEB6sGlcgMdArbe7eD5NMm3UOLXZa1dZFb5U/zshn24LEp\nJOsicXxvavnHD0rGC2CoqDWcCl4yA33O01AYpe1CU1nny2TyoQ1+1PNbs7hF\nts8dslOahirHYIuhfhsxb0W17LlnJ15RFV0BFEElZQP92WKktctaLFTNd6gS\n2iE9NKb7ot2PrgqhsPeONmoVU65lpmZQBfnmQvJ715fufruBsTp50n4NBewb\nC2Rf1CShS4npqO5g9yWOo8emSeFz6n8Yu4dQZ3Xei/KWvkNaagMZPecH7oKj\nYWiv7kAM7+Z5FoU2CtJJQ1gKMvrTSxgsGQcra+vnPrTxS1m1OhG74nopZzFg\nI9VMehGNlivIaYTyEp+BH0354sNlq9bYDo07vTMCxGPLjndXIeoGTKNomzAM\nZiP2ypo73XdlZFFP/cuBzIZqhJifh4YZddeNFsLudZpEKsa620vvF3g8iuBQ\ntNvHUkZP5aTZAADDfAz9in07LS7iIaB7GSA+SvGRUcTAOYJzpYL7jRvEao22\n12ZT\r\n=mNIG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFf7BeMrEel6wlzW82i6AlBBFTqzTP/5gzJKd3DRSrmHAiAYAE3ikJv+TEKUuFxc4EsbUcZTbAO6DDK1sUkG1XQBLA=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.1_1623810763994_0.5578159056195999"},"_hasShrinkwrap":false},"1.5.2":{"name":"@rest-hooks/core","version":"1.5.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.2","@rest-hooks/normalizr":"^7.4.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"36abc2165ec756e3ae9d3796eae004686af708e0","_id":"@rest-hooks/core@1.5.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-WSjEM1L1eWdF2XmOIk0lIZlqgJQj3N7+snS3bMoPVmDep/pdm5VutOvL3e6rr46up7kNE+fN9KC2kx5W0kQQPQ==","shasum":"71a300da16f9da79aa77976276c8dc0eb6ea82e4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.2.tgz","fileCount":242,"unpackedSize":872001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzjioCRA9TVsSAnZWagAAHVIP/A3XEhrWGYVaUYfb4/P8\n3BvzYIp1hAIGvTlT0xQuZYh8eB2cDQhrCrb1WK9odOximhZaHQNHj+H5ezNm\nlMscGzffNP0iZ3XB12hhKilunxlP3aJ45Baf6nXsxh9didDgtwd27TlocmBa\n0NYoXRWZhuDTwG2dmKpAT90MFrOzsmvNICArtkH2DvAkNysYNHrW2XnrzY6b\nl2r6gHk9C8tO/ooQe/8Aq3wMfqPBfN3CWdT5n4QBWuC+XTf4IkMnl0nrp4Jj\nZ9BHLstzXNOHPqmrjuFneMA1TiG9r0JAK+xV661AAW3HU0IZtfCL0qvrRi12\nrHzJ6uLjAE9rT+iJERENXFJsjSMzijPQ7Jl2NEu9CvZvTX2EAhbmGFUI9r5r\nNqtZFLutBABXZJTO+5ZngEv5jwYu2dcPfdc4whF6zM4sVUWHWD60Amg0YMPd\n/OOam2CvyiEw3xYwRLxvQRzeb+vjj9T+fHYSTYTfgjd6+2Y4XkZXiDRyY8NQ\n4HOB/DQO7Sdo4dMebT/VfzCwnJ8q0582NxH14THVdVgVCDF+MY7t+Zkpvvrd\nD20lNxqPYrFmEfvx6sPrLBRvrllF8tlfduoOYZpdGJTm1SY1mX4Q2i8pkaSa\nOS7oSziV1EkEkizoggDVlDET4Ly2gTw8IFIrCH9NVhoDBF2W5em5XGkCLjx2\nW6HU\r\n=LOS2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtbM1oqx/969Kz91bMLp/JBjTG/YKaLNtFsl6tXZkARwIgJaOCHp+yO5867LpPdnOq7nXQfCRaZhyWlCdAAjaHsRk="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.2_1624127655855_0.09916615176570587"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"@rest-hooks/core","version":"2.0.0-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.0","@rest-hooks/normalizr":"^8.0.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"2dba027e192dc7cf2f4cdf66b946a9b10fe07120","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-bIZlxnbS1JwToS4NgON5t4Hya/STjfm9ZL4gLRq38Ro1Hgcr3iubZKBT2cWkbc/KDsH1EQE+8JDJCxrUQitR1A==","shasum":"3c536038a96095b78881e404c25174ab7806be21","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.0.tgz","fileCount":279,"unpackedSize":1056229,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3JnTCRA9TVsSAnZWagAA/C0P/R1H8v3/0WK0XpME8MlY\nTxCjVMVxpnpxYgyCPS1hV2pQDRX1lk3hpT6+fgIGffJYvUUzpEv4fgZW7s7j\nN6MVVwNlO50CmqEkALiJqlQC8W5dcTAwzdwpR4ylIHmFfIokl6uADNg0AA7x\neVlMdmCfxQulu2Oc0p1g1/OAhVAuqKG8WoUoVsOkMzH3f4KmPnzpD6HdSgoG\nCi/sYzsJJVzmDtqaHwRHCOKK9/ReqpzkpRFycXtIVRb64culLPkZbyCl1Mm3\nqo5SG+WSlKOWKhwgBnz76YMDrJYxye3yHLuFkdxDaUlVH5BfjtvskdT83jkZ\nlXtkPPRD/v875PIeFKmMPuKdb4HzsarFgbeT3ko+liyNeuZH4G1zy+XGN4L2\nu0GPS4s0Hw6oxdgQVMi41Hf6ceKX2sMjOfbfm9DdOTiWvVRVystwSN2XhsOi\ncZajOefcmaixjfNjNbAiJJjV1kq/d/IDOwD5IQxoHA5wpEsxqNdYQxDzNsVO\n7Ny+2BWUncaTHRg/+3tBwzrFnI0Broq62Xk5ljiPa/+k0m0wvsDWmOc8zrDf\n5z2/uIM+7wdwShg7SEBvJBwAescKmd5q8t9B8N7AHHYiouCNpO+dBtFStSC2\nch+wMy389im2PCoBYy1GxfET3HevfYv4VJZPeda/LHQsUwjQa3KBaJvFe8BY\nJ7zr\r\n=hAfz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhjBJd7pUVmUZ/MgVsmRZlZ2T+CiulHPOesvW74+lIwAiAK+WGPAOg7Zb/oe11bvb4jc8wmILIPri0t8yvVMBISnQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.0_1625070035185_0.6755240318480151"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"@rest-hooks/core","version":"2.0.0-beta.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.0","@rest-hooks/normalizr":"^8.0.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"dc7229f6f020b09a8f28449bfeb3074ba18a8cb6","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-vgdpCWiAbkzx40prO+KKIS3+R/EoK7UAYD1gJrNBNIodqado76X+QuEuRey4c1vgad2xLPuJGA3q+Kd0rqjkYA==","shasum":"5b24c0f45ce643c9a1e00bdf5b20958bf173e6eb","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.1.tgz","fileCount":279,"unpackedSize":1057559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3Ng8CRA9TVsSAnZWagAA0xIP/06aVo4yJq7pfsAjsgvm\nh46tsJ6WUNudMTL9w+CR66U7Rabt1LhTGw/QrGhnYM6bTVVLgRiGqtqDyGnM\nD/WeyyI6LZsK2Mcclhkmr7KnbPm4fuDR4PAsOFtTwQxKn8+UvVGDeeMLMLUb\nbO44WPDEJlO5TBdEvJQfobGv5zZNBz3kNCQHdXsXESuB8I7vppSR8Q5hVuen\nTP2F+faF/9J5ykL1vd+trltIVF4xLQC5JdlHbS9xYjYFH5eJH9ysL/u2by1Q\nUn/mg6ZuXP7h6F7G8HVzWW5acZSeRmiZmEd/4PcvRvwtbICiRz/QSXmzVPV7\nn0I6OTSiNwg8Vcr2wxJJBq68sfGwNYv5O0eFyGHY7ELW2Jbz62Je5YVjRLLu\nu4Bg1tyAcpwOnvMnomS5G29b2H+gSua8tsRgplFyzpSs4RQjbGseT4fpXiBH\npGYFj8LzlIDL2YbOMEoZTwdliFwGIk9DSbZrUJBPVjF1SVYMuczQPbYm2Rq7\niQ2mt7grZ/uGNFGY/9ZBJa4zxvpVgTH1N1yecm7OvpPnBQ8Xwva5gren/Mtz\njU7Kw0Thqwzknc8uEhrEG1sAz7dHhF+X1aylcM/pgkXEQdz1YWWx2VUfTpjT\nEcVQd8UNCMWxqbWgVDO12wBJog5HWpvSR93XcIZZ7t+2V4FT2zVs1HXJXsTC\nY/ZK\r\n=r/Ok\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDl12MRfdTkPYPPB4nuq8GRNSk1vccNWXwgHo9hApThPgIhAMcB9JXcflKPwJ7sKJ6uEfAFRZmi53LoCZvhxOrsZO9c"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.1_1625086011985_0.9560136724523811"},"_hasShrinkwrap":false},"1.5.3":{"name":"@rest-hooks/core","version":"1.5.3","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.3","@rest-hooks/normalizr":"^7.5.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3381921609330c7fcd311e4543f3e1e45b40bf69","_id":"@rest-hooks/core@1.5.3","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-kqgLL06dD07P7/BmbVCyL0MRUuoVYreYVE4QpeppjJk72cOST73J5mfBSCTCOReS8gmN+B2ake1sK7AB4StXHA==","shasum":"1dfe4546c378a7d2f41d7c5bffe99f6b814b91cb","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.3.tgz","fileCount":242,"unpackedSize":872185,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5M+HCRA9TVsSAnZWagAADLoP/juKaGwrepql3ar+ry7g\nGyl7tdoNEFaZBk3xrvok/FmaSnSQV5QHhu/nXNgWT3p4VsZKfHKnx0w/PKEQ\nzlvxdC5oVWrlqqmtGSwVk3fifzl4ktArEPf308fvKhbnkRcdk/C1NnUEnasU\nbXAJAb5B091rKAKEZ0goxrYE7VxOt7/YSsxBMCiWJlb2RObRosJ07X7pLeOU\naCii2ZGGDF+5Nlko6v9jgmTxRhvfaQb0NdPV6dcSDkqRV/ru1d1najX/H5V9\nHa9pCE3Qs1GueMbLtU5ZojxiXiX8xYD7LtE5TQFDzjy+9gFe5XROQTe/mA2Y\ncur6Rn/eu+rgCv0L8ExD+mzLPc00jbW1rl0HdICG+YcVwoySkZyVFwR6iAPJ\nnky1I6H+8DRblMibC6u+aJt+Fh086WTkQU6hxjYc9JrbtgX6pe2LTKs/lmPr\n6PUPul1CBWkxfY/sbDcv6QED6krBDUHd6H8XQkuRvs/lDkwrDlCK2iXVS7fw\nJxQX6tVPE4ZuxAdg8Kruq4MQZ9LVPyNwx5157kRPThS1398HriakspEIEvdt\nmNYCp+D/JGVVXJUkUGBpoWt+ju7BbPw6wTJSLIUvsJGemSRfErHvJ81UPqLN\nSjDXob8efs/JmUfRUJsbHsUiyXWX9UnxjF7Qc2tlMTq3ebEPHOxAOrrngq3u\n21AQ\r\n=3EcI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuAtg3hSbensQy6HJvZ5+A+CGtMCWkqQ0XP4s/dimvhAiEA+x/ZnUp5GbYUdvtZyrBvFeSfWpQ+QhEgGvTqP9/rCvU="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.3_1625608070931_0.6044619935568389"},"_hasShrinkwrap":false},"2.0.0-beta.2":{"name":"@rest-hooks/core","version":"2.0.0-beta.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.1","@rest-hooks/normalizr":"^8.0.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9c80a807b801979626374b879f5a06bd3545a8ec","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-W3ehSYYnSnkgWSbFyg//XcOxDV9t9Z0zofyd3sOLgNMLQqJVXpxCOZC6diEE67EL5MRGdnudXTjOXA5cfn1/2A==","shasum":"08bbc0c5c290573ff0f88fc46289afb8bbde4860","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.2.tgz","fileCount":279,"unpackedSize":1061775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg6+otCRA9TVsSAnZWagAAesgP/RGdExRCX7XqTplNvXfT\nryByC8Y51bZyegmPuJk/n/42eHbAaAoCtT9ddPUJmztLliYADgmj3So8OpO8\nf8/YLgO+30Nloa9lTADc2PkRoJWS+dIUys0ntPw40eXppBafIrhyMrHoiyKn\ny5+2s0YtcrJn0V1zqCRjo5qwcf4gzQp/cHG16gQN7IOkmRHoQvYUJKmiFyNW\nfkDqW7PBTvwyrymBDkHXed2RPvaMCJHOo6gw97IhXwLBmeZk+Pf2FE7kj4uC\nSEZFyBFbIkkSHRtm1VG+3KHbokyw2OvoRyY/5eiJhMJ3p56Sodo9/rvqeUV0\n3ozKg0MqFE4+Y0fVcgeYC0GJ1MjmNAtiC0Se9evB94azdAwfpx8pKtqDbogf\nh8UQDL+vzUS/6bOv4CSPToIHl5UH/XapC+2GX9MCx0mB2l6F61jtRRXdNCPn\ncGOXh9Rg7JPP6gMiE3ezTnltSFzU5nff3leBg5EHIUi6eTI1gNwuA6KV8D2i\nkfQR1KcPDZJ7lRkio/vhQqMEnEJjFyNMPru5/QjhHTIRwAZN3SEWLX6pQA6j\nW0fZwHGkp5lsm4rNbmr2SPlGXspJQTyJ+pmuKX3YDlN0c5eeGEm+tPpOncK7\nTQCz92Z1PG88lL+Q2Q9oHav9JDxkmnBePk9CkkiYND57QR7zeapJaKZnbmyM\nhBZO\r\n=pDDR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMl23yvPLz2JgsX7/jNeaCniC3/8MpvA5F2IjuRFPRIAIhAPQRXANMHXzeTq4NGJSfjQMK8pxjFm14dQq69sIdJSoE"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.2_1626073644732_0.09544817101376424"},"_hasShrinkwrap":false},"2.0.0-beta.3":{"name":"@rest-hooks/core","version":"2.0.0-beta.3","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.1","@rest-hooks/normalizr":"^8.0.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"bfce771222ad60487e526d5d938e0649556e4dc7","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.3","_nodeVersion":"14.17.3","_npmVersion":"lerna/4.0.0/node@v14.17.3+x64 (linux)","dist":{"integrity":"sha512-EmrXCIZZkp5VInRiMMy4zTjG/51LraLHxWzOyO0erUzx+9yI61MHZTKl5OYdok2j5r+eJTBtqcfIB8vN5Tp6Uw==","shasum":"d24426aa905f524a7c435c40b325ffac305690a4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.3.tgz","fileCount":279,"unpackedSize":1089445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhIIK7CRA9TVsSAnZWagAADpEP/1phPoUUHuE8Ibt/qXBq\ndJ8/bawlSs4INwpsdxPYQIrVcuVoz68eYd5xBmPzL5GMHEPz5I4nfDAv4MNG\nluLSBqHe8gtSw14tmifogwlvFP7fp4gMSVBjs/Fy9wjXGxYqhegp9+tXCZiu\nyQ9cN1lyGxn0cf8+iKnFqs06vH1LiFF3w/CyoZoqGYLMkXfUjWQW3dMw0AhL\n0kw8NHEUaQjBuerBqNdlS4jNr0WGfUmQTtvLm6hfuIv9S48fAmQqjzusxBRF\nDYA/G7R81pqQ7UN0QlFDa0IHOfyMl7oL1wLsRQ7igqGMzxD1L1Mkclk81yr7\n8GRjCVPNW5xefJT+ctu5jGhxSKS6xssGDiAak9iA6WvCQskPrVDmYut7ijY3\n+iaw75HLBsuLHbr5vwqkA17txTDyyPt5tkle50qNG1XHKrT1Qb90lb2AK+ef\nNcuz4gFeOGBEWxH7fO5y3ohnXfvbrYsNMgy8/j2vUpcO2ukb1FPtumdzjqfE\nExO9r8lB6ME0foEe8Z/tRKwucHtrvjx9r40phgXJHO0P5XgZFEKXEifdpf/2\n9OrT9uwtNogmP8m8mEZzpBqGAoB8NAvKSKhcuKOt4USaUCk0j6/IP7MHPqOX\noL0HbMd2/yR9NRKenankkrhh0yS1Vuiw8c9S4hAoOqDuKlrcORRb1Shlq0PK\nBac+\r\n=5ysB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCta9tl4ZCT2hfe+YYAvIbFgBdjU4wk93pO/jJguchV+QIhAIfRWish2b9hu9SEAM7y1TAwaxjk0/LqjaH9tehLNbR7"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.3_1629520571204_0.7154893353882135"},"_hasShrinkwrap":false},"2.0.0-beta.4":{"name":"@rest-hooks/core","version":"2.0.0-beta.4","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.1","@rest-hooks/normalizr":"^8.0.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c156705ed0c9c0660b9e6c2a814719afa789de3b","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.4","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-q+whmmesUd2A6Drfm/WP5HB2w1KthjL2GJ0Fp3koIM9MVVR1lglY2OGUspi2eP0ftW84U4SG4fXixEQ+/qPUjQ==","shasum":"3a57362e34c96227119329f137f5295be76b1130","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.4.tgz","fileCount":279,"unpackedSize":1093236,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhIf0BCRA9TVsSAnZWagAAp2gP/0TRhsaTZlxc6eM0D+SP\ndzMRWq2CPyfe0UQyaXCWklPYXUPpQADbsHG0BbjCY8QBqLImUDF8yT5P/JD1\nLVk0ZyHMYmfrrO5Bqnhv+Sc5tsxp7imhQe1ZAbslN9F7Gq28t3VJoZNDm1Ye\nzjy7xUNIsq6fWzfmngJ6eb3NRWXS+rvwoMQTQdY4wBKO2GbtpGwF0KBH97Ez\nAiX2QIgs7Pug1DjDEOZEjcLRTh+VSv0281bl/xS4A+4x3/CFtr20NTfs0QsR\nLHVfYVk+VIev9VSClk2FmXCzkvHEyd/DwkOIwYbb8wDa8S9HLEloSFnpt7iB\nZYuJIX39QvPRcyl+hqoqzYYZLHq64STVRTEd9WIxYuDGvoC7ZkflgZifS7GT\nV/KE6upGvmzvgf7MauxBv3iSrdJYUVGAb7L7cRDOivoN4YJcDB/d5Bc6uuUF\n4pNvmsD54knDAKlBXPadf0+tdMAV1+ZAZfO70iLDk8f2Me9UmutLced9J/VO\nNNJTeY272SdeOXOfsZ1oM0T8X1EidYXuDWlbW4+z+B/XigRUmrYUIR9+0s/0\nOJRcsvqrflGPKPJKkycFePT2qlWIhjMhjns5Ly20RDqwmoRKCMBUKmucx7Bk\nn/FXdVenm/Gj1QXXOEHk9vIp4VpOIqCh1Afo6QIBcfuqt905X0V+ZoKCqOcD\ngewj\r\n=Mfii\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJF69XbzHYuUZA/L6ogihTdkENtdfWA18g45IUR8S8yAiAVqbOaqrlve2HcgwvTIBBvF/f16tThefcvGm9VTWEppQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.4_1629617409562_0.19203583741616392"},"_hasShrinkwrap":false},"2.0.0-beta.5":{"name":"@rest-hooks/core","version":"2.0.0-beta.5","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.1","@rest-hooks/normalizr":"^8.0.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"f06496334033c7e4f9e588156d71f8499b21d70f","readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nDynamic data at scale. Performance, consistency, typing for REST, proto, GraphQL, websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Demo](https://codesandbox.io/s/rest-hooks-hinux?fontsize=14&module=%2Fsrc%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] ⛓️ React [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 Simple declarative API\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.5","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-cfQUGm3PWlaSa5xRYS9I7Ixgpgo5jvSyE63Bm5Pp0nk3cKtBz77ZDJSoxr6FP6KY24I4pZ3y8GkGWhd3oWI6iw==","shasum":"9aee4a18291369dd7b9f4aac1f0beb002cbd3f07","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.5.tgz","fileCount":279,"unpackedSize":1091831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJnnKCRA9TVsSAnZWagAApd8QAIg7Sh+iiqQyJn9trHZM\njFIHYBJAqkoygGwKeg5EaVhdOgyhIXP3gOeWUCkDgWTqmLZlMA05rFa9uB6L\ngdeB5uiBMCOXAjeujKNxnd6GNDAJVoWR+XtOHutOKZY1RjK3SHurpspER9lA\nOYennsISdWp9DyAOHnCUjaRsWpW3yv3XFO//SIQK5RpGsOtpuupe4ItFbBKH\n/WhRUM98gx1t3Wts/cKJzbsgMKt+WBWItQ9fFveQSfu+aHwlhY0nHI4kkNPW\n6rDsZU/47GHeH9XdSnZ1uZE+lQPJbxUWLC+arP+BxUbSmaO1xkzC6izPcShM\nPspUzy1AyrO8+UHsFbaYAlZr4Ojaj1Tp3/PQKmVVXRvvti/r0CoLUBWLmlIk\nx8Be0JkT2YnqftWrTMnZS5HnvYQvaJRYzwYSLhtApzz2hfj2HKeTRsr+geup\n5bsLa2w5qhJd4kxwApRM+dCBeqHlTRI2oDBQSJEpywsGrUBXlRMCarZ92Was\nmhT7h2/5N8BKLv/OFJxrHK0DRKQGH/PpNqQsmmifSrsk8qixOqeCOr6io03c\nQcWou62MIxD0N47wUTMHfHfHi3A1G5/h8UtazjF8xcLF7bmERxorAiLdRmF2\nRwkzXzSiJsIp1Yd4nXIbOZUuabrwjuDparq/HQz0ehBrNo0Ey++urxYd5AYN\n4X4S\r\n=cHx0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqwhsvmwjDT6IFlTiW2g4TcfoiIReTyK39kK8OpgS3hgIhANhkd9gFTEg6TDS3cRFRWVFAYj58z/TeKQYghF/mf+JA"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.5_1629911497996_0.6183155001219083"},"_hasShrinkwrap":false},"2.0.0-beta.6":{"name":"@rest-hooks/core","version":"2.0.0-beta.6","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0-beta.2","@rest-hooks/normalizr":"^8.0.0-beta.2","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"readme":"# ![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/coveralls/coinbase/rest-hooks.svg?style=flat-square)](https://coveralls.io/github/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useResource(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst update = useFetcher(ArticleDetail);\nreturn <ArticleForm onSubmit={data => update({ id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useResource(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 Normalized response [configurable](https://resthooks.io/docs/guides/resource-lifetime) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 Declarative cache lifetime policy\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@2.0.0-beta.6","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-FfSh6Pjqm334syXoO9UnT37HAuhKKbkOVf0XjgJTvprR38mYB2q5FjCvvS/UNPHotQsaK0rBbh8Tw8limqVS/w==","shasum":"acbc237848a8bc31d887fd032d3ddf67f35b9d42","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0-beta.6.tgz","fileCount":285,"unpackedSize":1114141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhNXAlCRA9TVsSAnZWagAAHLUP/1iG2iUufBGzKEEG9Hpj\nzZ7k+3aRgF7RjVveKqhU5iehIuACmusQ+YkJEvejjo2bGBzw1171Nsq/1F0L\nLVmg+e+FBNFd8BB+7fGr3BtHxoSXJRbOnGhzmnb5HenE/x/TXExWzmuQwOYX\nh7kaXCEQ1vHYd0WISuwpuadpEB8ZzqOjf672K60F6PkO5ZEx1TCplOMPFUHs\n+OXNxH/xy2SvvpS3LjJi6Gg5Td31McOAFXOC9NnjFP/5QtqvyhgjRZkj5hei\nDKphCYqlUqvCcD2GoP4C4uPFBAupOSTOhiuRgV4KQP/yzr8DDnegSesLqACN\nSMUG8UP6YS3xlFC6Yv9keA0+5h2oVJxY1o2GE1pBP84vuAfKH10IbtWqcoY/\nCtvNR4k9T+1GxjoKj2c+MWidUvBD1XD3F/HyBmF3pkXe8FXB07HElWHOovtY\nvvdlT2fgPYxXaQ43J4XanGdM/kmelclwc+Y8Y2DImTiRSqsHQPY8CmnEEjhJ\ne/vB/zzgeo1OjhX2LJPezCaNXBKmp2qb47lZI3ouqpMYmF5+FS4CFjnTLixB\naWH2q59kKDDRkPzWPJGeOX/MxrUC9qN30KXln0hekoEL7+dPofzaLPbVqJJS\naV4NlC1RymsiLQj4/t8F0CfA14a1paqAimLIi/S0Pmgj2gxpOFKecJCuQ0F8\n55bT\r\n=mCjK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7CCp86ooxvmMTBHwGTJRhyK6wtBvejZOd2Lqjh4KqZAiEA3seM7KdMnzhXhYeAA4uCN1ejKy7WgsbAOD4uEpvoJ80="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0-beta.6_1630892069053_0.5207386447759947"},"_hasShrinkwrap":false},"1.5.4":{"name":"@rest-hooks/core","version":"1.5.4","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.4","@rest-hooks/normalizr":"^7.5.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"0a735a3a198039145cfd5244319c0e228610100b","_id":"@rest-hooks/core@1.5.4","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-H4R6YuQRs+L3SnJzjQ+jcWq6mDbihMWPA8hTgR3AxiCer/HrxASGHhu7RQ/j+/1qqZ5YNSkFR2q2MugEmAy0og==","shasum":"649d7f8cefdd543e71674e2b998cb090c8f9e75b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.4.tgz","fileCount":247,"unpackedSize":930047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODSUCRA9TVsSAnZWagAAfgwP/2Mu8OGY5DbDyNavc8YQ\ndXWT87oSInrc3KOtwOOYO3DGMvOHXgXN9sMelzZbR+vHG7RCI98zukNILUxW\nUjiFZZCfVGbmWQGaRK+EH9rhCncZqcDxdxDKibZVhUjoYp99vpRVK4OVsl2V\n2wB2OIkeu0Oaqw5o2qMDLECSo20AKrurkcJtz7BQqrLt/dGhYsVEFub0C5iU\njmpN5OUQRNpyXIHULD8A/nFtKQUPpakYYwoq1eIPU8xxYGbCfBXhzr96Xa18\nMNaLNTJpYOS6LrRO9COvolXXaqJvrkjXKJrAw45rby/mktp1W6G7Dc1ja7Kj\ndzm0jOBsdEahht6a7vb+Yxphl6y4hZ5jFM69aAhhy5b+ACiDuQpsh2D6hNP6\n7lUBGWDuKPdphNSidq6jPL8GamQLmHWerC4sp6WMdVX9Q7r8sAMSjiIVd3yc\n1rd2ke0K1URZgPO2f0SVg9/+lN0sbiqt5dmgSHFqcZrvtelKHVPGlAzKaQgJ\n6zOOm80eW4jDt+G7Mz4w8qKyJKeAXezf4tlgsV4IxgqTuIGuKE3Eee0S0WHn\n4/GAgZwP9+Bk5fJS+rDhY8Xl+bcwR+n4uYbt5mYosGquOTMQTEjAXzCn7HsN\niE8jld/o7ZgL6rzGcaTASFeQUzp+N8tHsihf94gw01ldaG0w9TtkqoA7IZbL\nX8b2\r\n=Jum6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEG170J6ZH0ckZnEu+2wFqFSmi17/sPj1Ns5+rQ2C08WAiEAyK90MumMKAnrsqdvKxVkhC9v/FLyj3vEE2tujCwroWo="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.4_1631073428483_0.8628925828630785"},"_hasShrinkwrap":false},"2.0.0":{"name":"@rest-hooks/core","version":"2.0.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0","@rest-hooks/normalizr":"^8.0.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3d347e568f1828e7795de18dc9fd86ffc8ce08db","_id":"@rest-hooks/core@2.0.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-6VjwB34nUcVoAuNWec4W1c65QyoGNgrgIdxb+EP3jnzmSnRksrO1MQUmFOUwTOSoKbfyTJiwhR+e6Mhu75VhQw==","shasum":"477d5aec04969947b85ae8ae5ab19b570cc9d98d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.0.tgz","fileCount":286,"unpackedSize":1119759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhODcyCRA9TVsSAnZWagAANH8QAKStRm+AZmzzZT6XWZJ3\n9PL/xKtPoPlDYiappqPKCiQ+3oDz2EF8s7kj+pzPMX8tYVJ3HpURbnr3sw+0\no9e/fiFabIZAivv2JxZ0veokCy5wksHq61UNSA46lP9f9Oe9pllWLA7ZSPVw\nF8045p/510zjiTfJffwskKWqLg1+xaBdGrQtcotpl0oewg3cgjq9nWGFUXGa\ndMFl/AvJqtWh3mxdxXLQ0gdvNbXNqO0xe86s5kX1/r+oYdHvsLM3PvJIc3QK\nBF1gUVsrMyWJNy+372KCMpRmtIU9bJEv/cNa+LnG1L/Gm35xzq8YG5lwVMPh\ns3dEvXMNZaCfXhtxm/T/do1/yz0HVM28JQqZZejRJ0T6g0sId0X5HNZhPbYc\nZDqwbwOw9lI7WGt+rGbSb2kWjugpKrXPIdjZaGpuavCAm38phZ+0lLojiPwW\nGAsMfUOoj94Rybzv9AUG0HoprCfNk0VFEBnXCL4vm6jrHyOLy2ifaYjDE5Wv\ndizBjQpL7xsxag/uoAkPtQexMyvwIPg/1jR9dTInzdrl27hNK4EK+rjKsYW6\nZ2veo4RA5TiaAxOxobux7YNCoocc/870xTqQnBZZjmMAqW14bqHGOOZp2APM\nRk1M26cwTJIKn13woyIB1rYIKfWXPPp8KZy/LaiUoquplf8kmOOJgiB49TFG\nDMJY\r\n=SHh9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7VR8u/aQdm2UFIdNIQeLs7w9PtF3oH82aBz6CU2cl5AiBV/sSPzMd1IDpiU+1MiXfwDh4X3f0Di1lOSG49hnxtiA=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.0_1631074097828_0.23563542727615516"},"_hasShrinkwrap":false},"2.0.1":{"name":"@rest-hooks/core","version":"2.0.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0","@rest-hooks/normalizr":"^8.0.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"901a243c26f5f31919880b8d9250c6be247711ec","_id":"@rest-hooks/core@2.0.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-DlRHMCjabM8TKPhnirQhmNYiumaqkel5xapFCXUA7PjHCoMj1mIFvULgJoHH7nRFnb5MbYomixpSMtomC4AGHg==","shasum":"68b386f67cf8bb4d1d1a6d74a1a4d8e7007a0383","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.0.1.tgz","fileCount":286,"unpackedSize":1122479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQPAICRA9TVsSAnZWagAAiCgP/RXWXXhFAi6tvBTb3yN9\nU7udr3dRZoXOMapHIc2nOthQjlVWAEEyXp3kdld8pm3Smu5JgnEXF8bIY5Jl\nZ/RlB43aafosgCePsmRaoVtQ1lESOd4fdPu2ZXBM3ONnJXQJJycu2bT+f4P7\nmQQ3p+rVQty2Y8o8m0CkNBJxv/XXfDpTeqUe7xgMzSM7XNFO/hxUxDKofAeG\ni2BGBm5QUmoySBjYqKWp7pqgHjPrvI9esd70axi/gi2p0fUkB5eMSoG2L5ZW\n4uOD9ihxKqkfH+I7nGwXRNEjjkFAHhiI4Kbs2nZ4piolrBtTyCxbdq50yFLq\n6V0ZxtNk8As2+5xCCuMm69pOBDl7sLJB7ZisfYng0y1qR+cTU3s1RLlbEEcV\ncdSKr1VVDu2KSjLml2mcXuwbT0kNDdk3KfHWz7PtqevDOfr2EkQd8wGlHF0O\nnzfaOfqOHKTMJmrSX4e4jDbzUYwux05DKO8OnKiWw92c3A71TWQxoMRBI/ho\nFiCR+MoqVdYuG/V1DM2ERldaLdlf65rygi+KZ2CcHfzke8wUXOqouZsYqgfQ\n82GlBhqePyMIpTHIyUN6mReLkELBMpI2+lb4eLfpxCQJ4BeC2wvKa6ISutWf\n1SnpcwUq2CrOU5HFT5418rBF1V9+Yx+ThrpYx3sdMbagfSisssFLVe/VM1ky\neLbt\r\n=L4W+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCppwo4XN1HxVs+ozgluIhjMHi/Dir0M7lQ4vcAQRJ0NgIgUWtefmIrB15i5oHj3I2vgzq7PNKgoArkt4SMCBR383I="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.0.1_1631645704126_0.8923356882231359"},"_hasShrinkwrap":false},"2.1.0":{"name":"@rest-hooks/core","version":"2.1.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.0","@rest-hooks/normalizr":"^8.0.0","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cd72f47c88aefb710bc6f33393341f9915d9bbcb","_id":"@rest-hooks/core@2.1.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-ncQtgIuQisVQJM7CdQfTSF2yZqaQBLFaQX73t7+2mugPQrD+GJlPbMFBZwzrTm1gAwojlPM+vFWvSMH8a4EwuA==","shasum":"1e4423c1805a14d9f22fe409285f0ec83e580157","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.1.0.tgz","fileCount":356,"unpackedSize":1288923,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLzLSI7d14kK3qw9N3w9S/GQpqHkF6gltCTxOCbHjMdAiAqRDvDrdxO91IWNfoDJ3f1h8mTZTTZlmBblYizTk8AXg=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.1.0_1632094524750_0.07594553990803066"},"_hasShrinkwrap":false},"2.2.0":{"name":"@rest-hooks/core","version":"2.2.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.1","@rest-hooks/normalizr":"^8.0.1","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"4d2b1ad1a775cdb3358f272370e6ddeaf17df9bc","_id":"@rest-hooks/core@2.2.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-9givdpnhzrbjMdGmSi+TijzNVL6D197zy4llIP1g/WpLbx+UEEtCbje9cE3owGh2b4ym+jRpqiThdyPcmfKQjg==","shasum":"cb5941e56e13579f66f32e3ecdc71a6d5a9df7cd","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.2.0.tgz","fileCount":361,"unpackedSize":1321732,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICw+NUvKVYAL7/zvhJWRP9tHVIBxsCkjlNq/fc2izj3sAiAt3SGB1XfyvBEGT4carQMPYrAhHc4p2N//eUQXqSC6XQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.2.0_1632887964030_0.4599749093264991"},"_hasShrinkwrap":false},"2.2.1":{"name":"@rest-hooks/core","version":"2.2.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.2","@rest-hooks/normalizr":"^8.0.2","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"b46e0d2bfb3ed7c6cbe9b351fc45ca4e99f34f78","_id":"@rest-hooks/core@2.2.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-ncgZO9ADnVXtwf8t3/e6qonlRdPeYFM20jJo4UpO+CsDiW1IK9BV22yN0goJePXA9qLcy/O3oE8466pOBiBDmQ==","shasum":"9924941e31644c51ac44129801594659c65d830e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.2.1.tgz","fileCount":361,"unpackedSize":1322154,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA96aXAu8aOUaMTKTRBH0JNHaV+Zmn7BDpUIy31NZUQlAiA6CuoUp6/UJewLasty3whUOZaCsTdg4UDtdXo5/nauDg=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.2.1_1632945574089_0.8985206782993811"},"_hasShrinkwrap":false},"2.2.2":{"name":"@rest-hooks/core","version":"2.2.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"de00e9e6462f9052d48f95ef1708c7744698b4e1","_id":"@rest-hooks/core@2.2.2","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-zB69LA4SuUePc+wZsEd9x3AfISAGh6I5BHtMC8rf395rbMlQymfwAOMAU7dWbt56e6lNkR1/18JixXB1F+v4lg==","shasum":"e8348dac81a22e7c381c064341a04b9b44c8c7fe","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-2.2.2.tgz","fileCount":361,"unpackedSize":1332552,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFIKU4MQTE681MjhrYd7wCz9wH9WK2vahwIWX5vSXJgZAiEArol6ZMGgDZ5J0q93c2Led8ZoAjh57f7xWJ9WeN59VLg="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_2.2.2_1633923101587_0.8172806814141147"},"_hasShrinkwrap":false},"3.0.0":{"name":"@rest-hooks/core","version":"3.0.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"4495dd6e1f1ceedb224dc59683008d6cd5843c1f","_id":"@rest-hooks/core@3.0.0","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-wPJMblzNsY39mQ6Xp8ZKd8gw41XHqUpfRRwlpeZRIx84VpJrjZCXdXxdShF9JG+k7v6mGmzjHdgI916ae3u54g==","shasum":"48f851178f4555e8577b48d24d801f42ad11e0d3","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.0.0.tgz","fileCount":367,"unpackedSize":1333376,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDaW6OfhkmYGynTQkEk9TM0FQPEhcYwkcLh9isMDdFl1AiAJGIqtg8gs2YeKU/OKq+dkDgCWDfQIAmsFBQ33etKkwQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.0.0_1634451891772_0.4686751866019758"},"_hasShrinkwrap":false},"3.0.1":{"name":"@rest-hooks/core","version":"3.0.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"8bf40b638cc9ef52ea9d407cadf9857128bb2db3","_id":"@rest-hooks/core@3.0.1","_nodeVersion":"14.17.0","_npmVersion":"lerna/4.0.0/node@v14.17.0+x64 (linux)","dist":{"integrity":"sha512-o2QkBgn70RP7xL8BrhzEypRet8ukop+0muesVYY+rlhq67zt8dFb+gUGfGh9k7R/6v8BZwLlfJqoMP7DDuUT3g==","shasum":"8e4d0456919a1bb732661bdef86fdc1f7774ef99","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.0.1.tgz","fileCount":367,"unpackedSize":1336007,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsJfjl0MmHVcBfyI9B7KpJQXIZvLJ40mKmsKX+3X142wIgChowgMg5sgoiC0nCQeBbt3WKbTo5r40hh2i/j4jrkA0="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.0.1_1634530384365_0.16190475705154572"},"_hasShrinkwrap":false},"3.0.2":{"name":"@rest-hooks/core","version":"3.0.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"650d00756b3d3c6979187ea9382bfe7d228ad187","_id":"@rest-hooks/core@3.0.2","_nodeVersion":"16.11.1","_npmVersion":"lerna/4.0.0/node@v16.11.1+x64 (linux)","dist":{"integrity":"sha512-1FAc+73RvkYI6qe/uepLInwUDOAnHHBnffrpnPhOFQ+E8SvAfqeRSFAjinmsyF1Egyk5aPdMXLboBLTKsHIfWw==","shasum":"0bdd4b9d637aaa92d0f8ca71a85845bd1399118f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.0.2.tgz","fileCount":367,"unpackedSize":1335749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4wYFBYSFbqIXWdOv5nB9Cvf98IDKjcW/Tmy76BO0ANQIgMIe1UgMujFC1EFTbFjoOfDaS8vPI87u5Ovv0WS0ImA0="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.0.2_1634690362344_0.22093026876997346"},"_hasShrinkwrap":false},"3.1.0-beta.0":{"name":"@rest-hooks/core","version":"3.1.0-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"0753329769728df2e69746a83f9a60e0a5463e38","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.0","_nodeVersion":"16.11.1","_npmVersion":"lerna/4.0.0/node@v16.11.1+x64 (linux)","dist":{"integrity":"sha512-ksq5G261HVqF440/uce6FCObuZGa2E6crPhNPQOXVNkfB2szU9O1dxhIMrvL95jjZnWrcjAaXiBxFb2ATDAixA==","shasum":"62ba4152f2203393c141d25e516fe3286d488a18","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.0.tgz","fileCount":418,"unpackedSize":1496033,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIBjeqvn0LcAvY1GFsTcLq0gNXzso/erPOtR7tN09IFQIgY4rOIPVz7XnN5LkdJB+8e/I8w5U2HROw5f/fkwoMV40="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.0_1635112993339_0.767052014112509"},"_hasShrinkwrap":false},"3.1.0-beta.1":{"name":"@rest-hooks/core","version":"3.1.0-beta.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.0.3","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"c16807dc67d473d3f7362a035d2390a87dc2c9e4","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.1","_nodeVersion":"16.11.1","_npmVersion":"lerna/4.0.0/node@v16.11.1+x64 (linux)","dist":{"integrity":"sha512-JFP7z9tFln64fNbRZ58JjEZ8jzesD3OHRpuH9Yc9rkI+VTZEffqVnBfVpPiWsNUQrGIBSwsvMV0+TZ5Stvk8Pg==","shasum":"498cd2809be4f397cd1c48cef9e43d335d930bab","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.1.tgz","fileCount":418,"unpackedSize":1494789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpGt7V8WOjXP5RDEhY1RbOPVBTWxj8FrbCa+Or+1HADQIgNRaRouq7GV3h44s+vzbKiGCC52fxU6UOGJBfnVhy/B4="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.1_1635552120840_0.6327873240251967"},"_hasShrinkwrap":false},"3.1.0-beta.2":{"name":"@rest-hooks/core","version":"3.1.0-beta.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.1.0","@rest-hooks/normalizr":"^8.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"a2251102d7d0a3179e8925634c61ea3fef840a88","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.2","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (linux)","dist":{"integrity":"sha512-+K7xPn5zH9XDHr+LE8YKwPs0ImMkDGE1a7dgKsiWZsryEE1VXcJT6DW2v+dR1XhOVD8LXvHW3diEoUZOib1lAw==","shasum":"29f1e0061e5c40b1d9ede18f0b994bf49d22cb8c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.2.tgz","fileCount":418,"unpackedSize":1497725,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoWHdCRA9TVsSAnZWagAAHt4P/1bTxqZLze1Cyg7MreRI\n+m6Ul2Hcfw1qUVaslyk9IVSzzNV9Kzu79dn846Lkfmw2KPPAlt0zPAydeckB\nENT6kL0im+2nQELL2yWiRg2qK7Ei4NNM5eGDBq5/LEfd0o1oXFafticdOpRa\nhdrF5BhXzKva5uQz9ljqT5PsxrfYP5PLlM2feZmd+j/h6BNEURaDlzf3qz3x\nJSZwaYAFlhbkvffEJFz8L9SCIUl7uf6YVA1AvfGz5KOnlatIZc05V03ROO0a\nu5DG1++7/krWysapC0jJO5/NCHEzcgnaEXsQCURaDsPH+2XCyt12F7a0le5X\n1CGVyMiLgBzQamT+rdy84A0WldupJXNe5KBpFCjxGOWgH4JUQhOBnM6IUm7v\n3x0kJBnEAmbmzqp/dS49+oSHnzmSmfQfk2LV6exf66+UE50AR+d+xdrNig5A\nBVfm8JzTERos17OH/+33EycSgWGSJphTLwuPHArB5ZP0JEO38KAXA7anC+Ub\nG2DK/e9R0RQTUSWcQ4oL/wQqOyDQvhN2+WDC5zVz1Oy0zZlIkZA8Vq4laTPk\nHw1wZNgHuqhg26wWg96lEppsUV+U387ND/WccS14kCXGSykYDiZmIskp3mXR\n2Ueh3PayJlxAQeNn3krEduqAYW4nFz1w4cnjCpZGJG3jrsFU0e+uoNt0NEkH\n6+n+\r\n=vvSa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1/OH+bWuNqTHeFyszXtKjjjulc1e+RhIPpPIS2vW0tgIgY646vPWMR1j5r+i7O2qv5b3fZC3u8zdvEYVnX3bYTVI="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.2_1637966301534_0.5538971099348995"},"_hasShrinkwrap":false},"3.1.0-beta.3":{"name":"@rest-hooks/core","version":"3.1.0-beta.3","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.0","@rest-hooks/normalizr":"^8.2.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"d52b9f0a70d48a8512cfb9e4d4515d212941dfd7","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.3","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-qlx6H37t7/aLRNJhSHpq1dFH6CeN6LG3qvlgIQwDc/KAaT7xKGTaRY+tA4O0Os4ZqeXnQV6BOYmcXqqDTskp8g==","shasum":"9719f91e35a9283e48b7a11916bd45f90bd14daa","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.3.tgz","fileCount":432,"unpackedSize":1580534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7ei3CRA9TVsSAnZWagAAGm4P/i6D6z/OlhisOIsQjVOZ\nR9Z7/LDGRrRC2Qrr0fyDReBupbKpE6QgBSRWiHIkxOiN/HClm06QzGRcRBHP\nlxYlwBooDlH2vIDA0vKVNVt4VKD1QxH/UnK6V+1gt0YKl55M3T4T/s8gtV0g\namRQsdI4csswyTeI73CHgjUbuNu3lDQh40F4EBZr1zVdCgA4NQ8tEYQzhgUf\nsi3b3/egi7119J5niK6jYzK0Csej1zVJUyaAUi6hhXgTZYRJjgGjB9ci+i0g\nIw54ZqGEGOadXTK/7RwEU3oiI51F1V30wdi+31pTrhgBF6Y7q9rKG0cC8o4p\n7HT+2jXR7X+a0+HkTQgX5wc2/KqwFXFkMd5hnYW1rv4Xy/CeLNi7pc5A+SLY\nwtjPozoNgW6N+ZT5pwESRAnbccpn73HTQ5WkEK7vumtc2s2W4hi/z1DSaJbr\nr9ayUwwkiscoqNaW3TUZb14zJE2zYBhFJI8rj2egUY8mRIjSrq/fJ73OIQg8\nrGkL1sHM5qnvLZ2580st/c3hyQBbG+QW82UrHAfsy6lK61KKzOMQDQeRxiJ8\ntr3muVevCBvZgTGgUjxIqj+RJIWksGY8gxjKgb5PT36TRVa0uAUfyr5kkln1\nbDjvvIbEO0UM7J8oQ5Tn+oilIZbWJenwG1BgwM4HUQIYOgBaYP+v2FqDXMqV\n6n15\r\n=qEJC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXaLl1FeHTJorNY4MirB4ZKDpavgRbOFYjpczOGA6ILgIhAMW/W6yeuXfq3KKGdiROde/S0feRmSsXwtRG4+vVAswq"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.3_1642981559711_0.730356968542649"},"_hasShrinkwrap":false},"3.1.0-beta.4":{"name":"@rest-hooks/core","version":"3.1.0-beta.4","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.1","@rest-hooks/normalizr":"^8.2.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"fbb71bd24b4230ac1e94ef6f6bec9bc856ef6306","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/todo-app) &nbsp;|&nbsp;\n[🎮Github Demo](https://github.com/coinbase/rest-hooks/tree/master/examples/github-app)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.4","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-wiXZE5H5R/M3jAJC9rj5cMNnep72fVwcuHR86rzzMoKvDhM0sv/1rbOU6E+Q7fRz8ks0m0NkVHGgwPULbYFqtQ==","shasum":"3a0b6424464aa8a5981e853cfd33295917ec657b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.4.tgz","fileCount":432,"unpackedSize":1596173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh94WzCRA9TVsSAnZWagAAt4MP/jsta91+TVEKm/QiDbjk\nKDGV3wi7Bjke7bZvOyMz38MsL99SU1d8HY2T4xLTUFuXV/JYJBEUX4ysP5T5\nHKQMGSc0dU5GKGEfLN7ymbuC1ovCHWsomfux3NboaETzLMsjEq4k+PB4PBow\ngF04g0X/i+s8aAX7i+3NBkZYl2JJYXM9JGHhjQHnnT+zSzlBt9+QLaVavGAE\nzo5EG+tMBqu+v9ZNlLhIFXHAI7soRXmK65dYJuyYqxCw1YRQw5HWOSjddHaE\nSVXONCXof0XTkTsAba/8CR2efi4aUxXJ7GeQZZ16rBxTlQiHu0s4GcHe6bML\nAd01ZUUErZnVG7YPp4wE0Y8TSWZ9+XTThMPls2dKKP4up2LS6FVUvN6p4VUi\nFbFzKsJdrrRdV24lXfuaGY/8gUT5pfory5eILxGUtEFG7n0ptHBBOTZz9Z+G\n6knAmLRWj/pHnuN68Mf2a0h/Zt224UqE4Nn7V8bBsi6nrQk2m+C5PafZknEQ\nTSmWS2WV5vqYnr13zILFEQIDjKsk+zgSYyBT4WC4bXFr0sal4QsEa7NBM+XR\nP70+d8iQCnRgGhnIT9TTknsnnLduHV1xMMVoPIa3l84L7QSkUbZb2ozhJbMS\nzwjFaHjyuhDHU7HvgB6CBXs3IxOAUlnHNVIYjWNj4YNQaf+VCiXbUH1FhKFU\n4Xnw\r\n=LXJe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT51bw5iuCTCFe1Ql0jlkelQlkDtvCJAUXjhUcdywdfgIhAJzUVMEcvzOQxFE1Oz/o8quAAQooJj+waKs7lmdRNchq"}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.4_1643611571217_0.7714444805440228"},"_hasShrinkwrap":false},"3.1.0-beta.5":{"name":"@rest-hooks/core","version":"3.1.0-beta.5","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.2","@rest-hooks/normalizr":"^8.2.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"aced2c193d048d724a1ec09e7897edb45e483292","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.5","_nodeVersion":"16.13.2","_npmVersion":"lerna/4.0.0/node@v16.13.2+x64 (linux)","dist":{"integrity":"sha512-1nFGJSYEt4t/Lq7bjhr3By19U6GHWRvhk8WbzhnY8TgWaVhjsidf+8Daivx0MR8r2BdHU25c0LPHrFJgPiX9JQ==","shasum":"7fdb1c45b4841cc3c7f771160896c6fbd839190d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.5.tgz","fileCount":432,"unpackedSize":1597158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCyCACRA9TVsSAnZWagAAeWIP/j4zekPQI0zDFe7AEPl6\nHK8HcM+EyAMV5SLUYtpnVLA75j+zIwirSCfN21ax5wLklcs5A5w9YzE38VPK\newkLEgjATG+e9DtkExGyU+7ZXDAi9TloE5Vab/aLIYUWaIoVNl4WJKR8B6jy\nEkVRQ/w1dVgN4IRZLNI0dB5yDgoqrpBEC531LvlfCNegZAlthIBRp60yeRd5\n1UvGAPffxvUoDazDHAW07nyorub47uY7ocR08i08reaY/y6aPGyU3yuQQnLT\nzy4vaxVTz+OZqTFG9dExgWn2fmRbuIe9qEx7ALx3Ho0ihA+SBdnA+XunEBHg\nN7fULjfQ8LmMsPqOFL1ZoZe91qLOmhqOXJwv7GOj4Oa2zqUSGYMCmhHOzwzK\nFbuMc1FrAUtn6zFyHKbri+mLY3djyPCMpys78vhoJWA5uz9K2IyFvG8i+rdd\nP4ep2aUVJbb67tW7FFkErpPH9XV2NAcSJ0HE7ptBi70budKQw5JM9a3NuV/Z\nNv9eW2bsoPWwDhRV2JxbeWfCaw6/q8zZtL5dLljGqBDFDk5aRI7h9O3/Fv5O\nNgQadG4yxk8t9cMDi2tErdDBSHkkZkHug7laZ1zjW/22zdQ/c5ARJ1PdEfEX\nZOwnCLFTs2WCPBJejFlRrnewz7BCMlKqQdGvYZJu53Gb52wnLM2vFZB29J07\n8K1R\r\n=Sadt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEyj9/rVa/0u7wTYLWpgleieG5rUCuMDbiBinuMYGfzQAiAqQdHrPCrLvM/O8lMWQoi6kkeljTbvy5rO+k9FSNRypg=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.5_1644896384593_0.24224440201807051"},"_hasShrinkwrap":false},"3.1.0-beta.6":{"name":"@rest-hooks/core","version":"3.1.0-beta.6","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.2","@rest-hooks/normalizr":"^8.2.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"cd83a427cd17a940cab0018e18a7bc949b7110ed","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.6","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-CQKzD6fOffonzQgXo+pfWwCN9GIif4kMsouBk48QqzLvoQ06LTNnCw23hSkKzhJPFsEAARgbzAT+eZkfhhNZ6w==","shasum":"d1268a5e6fed79244da2bcfa08fe933cd2693a6b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.6.tgz","fileCount":432,"unpackedSize":1599129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiGXDuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4bQ/+N7gf5yDvPQ9rVlU7MESpUmdxrS7zhytu42WOcdaNd8w/a5uB\r\nSFXUZ0Iiv3jY/b9ZpihelDT7J1badYbvzK5vQr0P/MVtzPGqe1H5OeYFSthA\r\nMorMD2LNklucuPJk3oUpiD95HvM8qVmS0ZKIQhnOTHfBrenpOyexg9n8v+2P\r\n/VskKoXDfCivbOYXXgqcJWRhzVVRB+r56Ii/qqt0PmIbdeFY/5FaKSkRbwgl\r\nweyBHmh8OGuWAJnYkltHRD8gl9KE859xYsm1fLq3A15gg1s4dXN9PC3yjN/3\r\nWhRGKZ2QyyOvheyFUeaEzQWEqaa+6408ioyAGcbRWQE1tLyiNBp9IYXYvU+d\r\niOlxeMD3naj8I5DnQXXq6MsP50pBxAaY8QUz+cHwPxPAcVan5sOfGMR5o3cE\r\n8l8V0VrzAzMktTsD3VsIEHL6cJHGM4UD+mZbYBNifg2eodTsUug9jvtaHdEd\r\n93aEEhJeUXoYIejYZsy+x6vK1CLk+GxO+9fiikOH4aVN7Y9EVVmfb5GKDhIU\r\nrlmGatgTQY0Ui2ECYA8NYI8W6WGlXSUkrDpEs5hirZlnWA7Al5iwY0nl0A5j\r\ngeDuS8GiNMTU7GS+k+tbTy6hpcKiqVCFpX0t5RjUvS/ojMMQTVYTTB25hgFW\r\nSYe15Ukg3SHZl7vLxQXwF3KFH6oxcw46E9M=\r\n=0vgM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVpygOIU0hwjKnlT982jAvNgwM94jrFirj5w8rMSitxwIgeMEmGcI4+01X/SlNqBQQalLamH9FJS7SkV3aS7TpVIM="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.6_1645834478242_0.8049097714985036"},"_hasShrinkwrap":false},"3.1.0-beta.7":{"name":"@rest-hooks/core","version":"3.1.0-beta.7","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.2","@rest-hooks/normalizr":"^8.2.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9a0883604fa5b9ee17fd1585f4f2c4194881c93e","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.7","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-P6Wc+C77XrcZfhc//wdRbtacXzaYLnOuMYPhPx9bdTJWZSzELa/9FdjoOqnkK7m5DMWYdkEYl1v3bNLDnzIAaw==","shasum":"55a2bfe7b2da5b3a935558ce773a8a0bf0cf0513","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.7.tgz","fileCount":432,"unpackedSize":1604975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHZfFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNMg//WeTEW2Tvd3BllrP2oqh9xMhZAjGlz1rLFf+Tcgj90qztQgDX\r\nXQnWlPexk31RiojvxoE6HgVThULyPEJ49gKAB0oiwKbzK+T/Eu4WZFW9LbFf\r\n5KN8Wk1xqQMcTCdVmMIoXaL2gkVsuD1rwsGy+0V8sRr2o/xkCiIe16sc3bv+\r\nB8Gijky4Hdnb/tqtBQ26MOoMZEOFyQHkhscEa+RuzHhXAXvIngR5Jdj8kxxd\r\ndf2zNPlihvLPaZaBXPETTLDMq4jKImbZzLd90zNM8utqgZr7MO/yeDyAGLYL\r\nPfvJtX5Jjg9qmo95pPtXoYpw9NvMtxVa4Ix5RBJH5rzjewaTLHodDZAf/mze\r\n3rrwjT3eawChFyLackbzy8+bLUACYYSA62JbK3Ts5OPbzZolC72yAHmijvno\r\nPQQqqm4NTU3MKoGW1tjgvptEco3CeWZz/STHoRk9NpAXNUzPC90RR9tpcA+Y\r\nfWWmbQJNx+ovN1Jh3sMecPW6vI9Q3wsWMSt5TIGFDTdyYkMa/+oTXf8OVudR\r\nj+C2U3frAcMxUzcZmt8ElbwFmeTRXip5uFXLMXvp6mCBiBsGeLBgeCh/pQ4j\r\ndNvJQZSrsSY6BpJmr0mQi/ctP7FYOAPk/UZ9GV5mgKfnWGk9wteZnqrXs+Kf\r\n9bjiLvALZZGstGLfshLqkzcyLPaEaVgbX3g=\r\n=i9n3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKNkbOqH+TIsxKM0pE0QtED6DhvqXotRo6HiF5nXZteAiEAqRGNliFv6OSwRUEYSdZQVwo69Qr/DkieNllLTQZ028c="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.7_1646106565636_0.9937433965018823"},"_hasShrinkwrap":false},"3.1.0-beta.8":{"name":"@rest-hooks/core","version":"3.1.0-beta.8","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.3","@rest-hooks/normalizr":"^8.2.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"e697b70e8bbeb0f9bac4ab50718141b0f11ee1e7","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.8","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-hhYxqWARxnwjp+AsVqNSnHj0VRk2TMx+xeyZFHOlj4zmf3q+aSiJp1mP7BMuNLCimx+lCv5Ca+npcY0m00vsaA==","shasum":"8f8e735b6d1b86655b0fa1b68264ae0bd66c9f83","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.8.tgz","fileCount":432,"unpackedSize":1607540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ6iQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfNA/7B+nxmwFYKfWXeLzWnqepjqY1C+jj4gyVrByrZ/MeHypXMFxu\r\nA2f1c/kUoVoC0ZatGdk33gW2bHt26lCxlQgX1yZWoFhP/ufyqsEx8cmn7/Ir\r\n7oQeVM037J4VqfNA4W8yrS3DiyRsCChyZ+uBs3mqhgnw8eo/vPEKXSENCklN\r\nUQKmeILr36d+eurTHpGG2MIwbAaOsbTLbUHiyNLK21PVTUsuqHJZSer0gcxj\r\n2myIEuh+GFpfewZxyfK3PIt413CXma5gtRRMnwbej0nmbcXw8qIo8oWKqYv7\r\nuh39yHSx2/tvSS5r4cdUDMF39avZ4z8oV1IL7nzsncayz8jGEDmleukGwNfU\r\nv/aVxv/BeFcjLDRX8GOuweMuZGWf8PGeRxpSFOX+LqHvORv7xCOID0+SogEz\r\nRAZaGBKkcno6LwKk6M1l3jeR5LLXgnB3ECmruRE0LKFmUoz65Ek5QWe+Tigu\r\nK3WB5gdYt94vGEqCEmKJKY2G88DblwMrSZckdbciuk1p1JkFPHH5fDexwvqf\r\nFsS4/ro1AgQq2H2lCoYq+DKkhU5MavCFEojh8/aWZ/tOYGqAFictgJDQMd/R\r\nZ+niDXnqneHzE2t1/jCsxE/kPekgraJAj3lmtpkfaBbNwQFlvs1GbSASZZhY\r\n8C7I2yTIbsHKCxWcdXMKq5zQRLo3UfJ67jc=\r\n=286u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFBSmjWL8iRrA270QKmS28SsNEE8xuLqAiFJ+MMxAyhEAiEAujY9jDHDKUoMzepys1jARK1wUUJnCdkQXP4uK1qTBEE="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.8_1646766223977_0.841284178173594"},"_hasShrinkwrap":false},"3.1.0-beta.9":{"name":"@rest-hooks/core","version":"3.1.0-beta.9","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0-beta.4","@rest-hooks/normalizr":"^8.2.0-beta.2","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"b435cd1165a996730b9353875603bfb97add2cdd","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.1.0-beta.9","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-WccOnyPsJYERvdiCKgbF7OXschcqzNPz67FesefnKxvsBrH3BYS9zrmLqyf5euKsLaAdYFwoCKIjlXh4W7WT7Q==","shasum":"e4e3c36d9e672fbefac0a979f4f3b1466285dddc","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0-beta.9.tgz","fileCount":432,"unpackedSize":1609394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKXYIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMbA/+NiwT99VAqHOpbg7qwubl92Wfx4lR61RWi3U5uNR5GO3RThoH\r\n68OLBH/4v+u+7kC3DN5WUmN5KA1jEb8d3cnKuVyViBCs74CS219J66trxqdr\r\neuyFSOtdmw0e3JEvXT9AmwSBPL/8tJh9BImWMM3uX1ths+8WH2jt/ZVinMVI\r\nqywnOP48wH7wug0R+PNVMOZQDXwiSOkBPumd3o4uyXdCgv8MPII8ExlBfNWH\r\nojZ4tI0GJFa/+CoSwd8pt70PBy+w/AvzEAp8QCcJ6ggUZzgwPMpjyabHi1wr\r\nGXIJqrZ/e7r8ps9wRK/Bbvm2HH6mTBoQuW8fZpmtl8a8H5MXmGtLq4D1tWmy\r\ndA1lzclKIiIaGyryULDDK5c1SQ4sLJrD9iiTuackZSpHpFhqZt2pBI6Kmm5a\r\neCX/VP06Y/aSP4lJmH9ZtWCrx0gUkV0EbiLLNxJvdOpDboAc7zw05DLZI3ed\r\nDIPnzM4ibe6ML3LWgq4r8A7AS+j9vKsxKOrCEGv0mdVnagSRmGvd7znLEpu6\r\nGb5Q2FgYcnD55uu65PQbMtES4BSoaPQScrZHzGR9dmGydi0AIPnyBF0kt4iZ\r\nWynz+cr27EmnUYtkj8PVeTongfIEPlSdO3N6keFoWaSrdArPnsTIOr992kUs\r\nW1t52KsmfHwjDbSlDPipHVzunTBJ56MhCtA=\r\n=XHlu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGCUmI8uTbsB/TYMXEu0I7pRTEV3qHb3ipVpzMwpXYExAiEAtkV9jq+V1rERmid5bdO9enC4bDSpy421ScZGDF2bG1s="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0-beta.9_1646884360078_0.6448421991133746"},"_hasShrinkwrap":false},"3.1.0":{"name":"@rest-hooks/core","version":"3.1.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.0","@rest-hooks/normalizr":"^8.2.0","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"1300e60bb71b7f2687802fe13a52a04f88fc304b","_id":"@rest-hooks/core@3.1.0","_nodeVersion":"16.14.0","_npmVersion":"lerna/4.0.0/node@v16.14.0+x64 (linux)","dist":{"integrity":"sha512-6NYOE0jgY8pO6nfWNdImFLwBkpPwMwmu29nGKPS29kvSCFSBcuIz3P2AaMZwl5VlO3oCyUrcRSTqup6yc0Kd4w==","shasum":"6b8b660c08e66947969f2db3301a6cef495e8ee7","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.0.tgz","fileCount":438,"unpackedSize":1615043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMuFwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxYQ//abZHHKSST/V0kCvVampopIEkPf3qyWQwRAku1rsY+jutCqCn\r\nVJqgx6slo0IvGb0d6FMl50usWfTl5z39gQ2oleE2uHgp5gc9Zfgm80E8Xoda\r\nWTcIms8sAwqvsdYcltd0WdPBwfZH5QUaukmJj9xYvAzJFEm96t7GwkO+PavR\r\nPR/nt457Rg0RwGcH7yjCKcRmBF7/x96GXPa864qnLRruA9NAN/zIB+Sykh80\r\nDmbzLzHBzTh7j5NSvvvAJevor1yd/VyROqmmv5luKEwLFALNLG46HKpw6vZV\r\nZ98HsTRPUS6f4LjTi0K9zMSaC3ZoWYJSjg04lG0nEbsTEGMRUZbfJnAPdZsb\r\n5QXVSSJXWAzlXnoCn1bZYb6pnn5sggJZrziYcj+VEouHki+ZD3zzMnvfBXKN\r\nz4H3+O/3JtYdFT+qwuTRvGhfAGL/AJ+/tLjqleRC79srAjoJCTGBfTc7ueOy\r\nAXrmhNBT3w1Nu38cW4Ce3VYD15DPAoPhPseyijiRJllQcz1vKPEUrAhMUCjb\r\nw11gt49w6/n3s+aDFoa1j8YnXLDAaTOZAqJ8QhBQZw1iOXrcS014ReCs8M4+\r\nEYXfnV27Yavhppbw+jRZMSak7FVOdJIPUmW27n+/VkNuqqJj+jK5w9xqcIdK\r\n26m7qiENa0Abu205GMGDVbwo8DzzBLfctgU=\r\n=lVVd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1XU6Hyd7ST1E91O0VHun/5NOLuPLQ4z9u9pdU+rqxQAiEA6NmfwWJxpyi/hunPiyTDt8uaNMX/oqk0GPkIGjLYRq4="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.0_1647501679929_0.98682004784671"},"_hasShrinkwrap":false},"3.1.1":{"name":"@rest-hooks/core","version":"3.1.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.1","@rest-hooks/normalizr":"^8.2.1","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"4472b9b571cb652f91fdeffc8af26c7c70b58163","_id":"@rest-hooks/core@3.1.1","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-3RIgdH1qSRHACpHQh35jdPrdvrGB9rsCClQydrRUrObKoiiHN8zM18qLEDNzYCPOdY2F4BAluykOWiFizA4CAw==","shasum":"51a41dd9736bb11024146f0c4507cfad98b9f21b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.1.tgz","fileCount":432,"unpackedSize":1617540,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPYPG6PnMwJ/IwLmVwKNuG40HRwOY+sO1M0SRaqlignAIhAIGPJdiBTueIpnkEvapEvolKiHs4oaVO3De3cDp7MkEL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiR4yRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowaQ/+Jal5rMQOetOt5YxFSITTzLIixP5g/btOPzUdC2rbiw87hb/f\r\np2gIAqSd4NLEgbx8Ug4B8Zg9oMvxqqMjY2Yi4MQi1KIvCohuD3Wio54tRBpR\r\nDh36saKS7rqP0Q+Zz1Jbsk3oClopjY00jV0tOEksm4fVp9fFnnphXZ05hDcr\r\nwX4Pnns68mlYylYuKQztquNEOgcMvfwwoZ2dvS1J+FnnDS8uv5oeOfph3rOs\r\nhB/bTbXrQU2Cquigd0y1sg8bTd3P//bitzt1QU0GicE3jnRVDF7K2xXVFNJy\r\nZuDqHTNubDOgzo2ghEw6dF27C6JT+jykdqyBeYYlahNlaCMaXZFLJbAg4QRC\r\nbNFa/aj16ox+iPjKFAvdjD4Kd/AcC8JgTlvoHEezNxNRVv/z728h62I2hRbh\r\nylOtTExwWCczaaYM9FXWEwUOcw1p9cz2J9fksBoXcwqsNWIwLv3GH/uK5eFX\r\nowCKK+tYxBUoqVyLS/8vWmPRkp6nvX/X1BzQCmm/BCzv5quKY1q2LZ8xtCuc\r\nmyLGCBsFPFm7CIi8I7lfdu74RD4PoEMh4/LoIYlC5hVC4ox0q9IjUmw/2gtR\r\nnqClpShm36/SCBv3VG5dm3+qQxZMSycPPJvyrjaP+5itSxmFAsEUJG1dd+Ti\r\nfqh6IcHZfiWYwnLnLJmLNrSI7O29tFRQg2Y=\r\n=bLxQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.1_1648856209193_0.6735513309938861"},"_hasShrinkwrap":false},"3.1.2":{"name":"@rest-hooks/core","version":"3.1.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.2","@rest-hooks/normalizr":"^8.2.2","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"18a27d147b3857c62797db88a3b3c34d9c1c418c","_id":"@rest-hooks/core@3.1.2","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-uRtmckFh3UxKjM9CazxhOk++Umg6dvO0JD1fMmburJHwlVsa4uZ/hd89G7R3duGzntj4SAEmvrKZHgFI66htOw==","shasum":"66bf2cd2fc7643bb0efffacc6dc909c4ab04ac04","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.1.2.tgz","fileCount":432,"unpackedSize":1620551,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6KDTv6V5Ba/VpmsjRPyEXitVA7b/LV3yLrIBzkVNwPQIhAJBAylfAM6ktnMWmayqcq0uRCQHAG7XNBoN+f0U/A7j/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSLE/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpR6Q//V7cv/9Y5wfigArlZHNINSZ+vnszkBQLnp5ja2yx8XsrAi9w1\r\nR+TQZYSNC5x3KE3/OR7uKw87s/hxlZMcfQ/b4+uFwTyja2tW4jN0ntfXG9Q1\r\n88e39Iob3MqSQEmIRvh4ovxcVT8Wj7lPOEQQsWEoQZ79/OSuFP0zsww+BtAt\r\nqKXPsrpZol2SjEJFWZkyM00KALn1VW+86JJ12eM6h1vuhhY2b1o0s4NPPik/\r\nKbSRpdahE35d5UTP1/KLTkh7UojRSLW5GYN/pRGZucXj2fTvjpi7UL9BRNYV\r\nnJ/kj81lggbk5a3Fjnf+1rWfZ4PAkkHhjtvDOOCv9PiWwuR6RWCsXQS5wM+5\r\n+QDXK9PNs5vXcaSzJFPPMvSbEHaMOYwQZuo5mKv0Z9W1hVam3abD5/JmBQWH\r\n/4WI7M4oOR51HEK7v+S5vuOyoP7peq2bV4SiEMQfCSOdteLujwSfXgRRrq90\r\nbh0rDx7w1O7bsr6OiFCHn/U++j4Sn/SYleXFCAemJI3yZWN/cz1VGUUT3zOj\r\n1w1YgLVqseRh2xxPZT3vna77em7mZN3zDbmWG5X7/l1mJCtisy92FiWXRPCq\r\nwZgpVghFqyqW1fSyR7Gd6NVbKvdXf8+hMsNiGYcR6HOg9FDdnhdAcJE7mYrj\r\n68hMiF9PliyfCrk/4onS0nDkFJA/S7T31hI=\r\n=u9Lb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.1.2_1648931134905_0.13827411546884494"},"_hasShrinkwrap":false},"3.2.0":{"name":"@rest-hooks/core","version":"3.2.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.3","@rest-hooks/normalizr":"^8.2.3","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"2f4974d8318442dca2206cc4dea85da34f07b371","_id":"@rest-hooks/core@3.2.0","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-jaAjQXgJ3wxqC2y/uWKeb/eh6mLckReckmee7ikYVRtAS14A0NVnjUGv+OUmcMahqThLFDZq5mAA6hjXVNHmow==","shasum":"0e23dcffd5edc7bb19ceb823d9de6a552c605fa6","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.0.tgz","fileCount":441,"unpackedSize":1674404,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA6tiI1hnzomvxJM7iZMKNu+flonG59hGokMTzEZFQwmAiEA5p4okr1JledaklsGh90KJD3jgZ26OwucwdSVANNor9M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiT361ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYTw/+NQMsGWuc2m8jF2sFChYfxbGAw9yU+QSct81lG2mbZxSB3d82\r\n0sz7EkcDhJa17RdSR83Z6GGAlo+dVJKZm7DgFWR6F/q5FYfEG4myBEXo7E3a\r\nA59iEA3cLmO2p4gy8/IDlda6dW3ZEH26QWcGmyk4etvoSkayIKdrBqvSb+Wi\r\njvBEi2q4YlTdv5Ywvb922sWgc0dCLKbydODn3M/DTt5cm5k2vwuIrqm87xWr\r\niQVEL5jwedBK7QW2FcnzJkqqx04fMY1GRnZYfQ24Jd2bQDzoSe0xIKgwn/NY\r\nbhrkUtuYCpy0GRKxZCI73NbKkU0QAfh+xHsyT4qLoT9Gzs3hJfPUEw30RGSn\r\nqmvJpXs4SBtLDJmAug8gBEGWh9g1IQsunS9uLyLl4RzbtngZgMphoo4TwUwK\r\nLG+o3FdHcLDcPnQGcRgsMD2uYp9ye5wpJfP3mD3RpWdwUgny+2Nfc1SfaaaK\r\n/ws7vdepSR1KNdcxEaJRk82i+sORZlnlTyhgIgLKFc8WbTTSNwzhJ3ghgqXZ\r\n66n2B3UJn0Gu6lEWGuPXK0M621jiBW/FlGpP54wwqdJkmS87KO9TCLYDe1lL\r\nno2kcXKb4el0EuXjsxN0C3FJSBvQmnhq10vvo5GvslFyjFCWrNb+WT4xsM11\r\nfZcnVlZcjaQMeNJKdRlo3uNBTX4XXporw2Y=\r\n=JgMa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.0_1649376949474_0.04302382055980436"},"_hasShrinkwrap":false},"3.2.1":{"name":"@rest-hooks/core","version":"3.2.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.4","@rest-hooks/normalizr":"^8.2.3","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"9ca7b83cc00374d2a0ea68f43a6ab2d3aad8cfd5","_id":"@rest-hooks/core@3.2.1","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-QyL1l6BvsFaI5tdotmg0oJVV7rkjtObrB5+79b7L2InqVOu0kGvqaTvODp/9kbynylxEwiFh7KJo3iPDSuD+Bg==","shasum":"887532df11f4b26b499a83ed6ded1ddf99b307a2","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.1.tgz","fileCount":441,"unpackedSize":1667872,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa+NcuDVj8TZdjY3MDZ/rEcD3e/XZuH7QWFv3l7Mu2cQIgKxeYwVbNdWX5wbWBxFTjk3ZnE1Vpur+pz2DxBeRB5hs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVJxGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgSg//SKJL0OUlqTUiDjbaWOgbIIT0LOW1oS1Tjg+zSq5jsUNY8bzu\r\n3MWogzVeVMV+yd1WhCBmqkDQSEHk16afxp0S8pZRGb3hEHhHFJApZrfAvMKg\r\nCY43Jz48dEPdx/LmQ/CrndOlgkOPJrgXxgo7f+PQ/sKhjb8DJOgH195Zzq0s\r\n+gwe+jC4tiDLnw4Asby+bUF1IXIGVvJ1AlcpetnOQXT7u9gUZIbHg8Wud10M\r\nwCwijksrV22HGujmShr0TY6hbODEaoTBcTxkhI3jaZYbV7UfwlyxU47TyV+A\r\nW/6Vb7IBlcTXL2i0o/mTZGA47yoeiS4ahMN1M/LXvCDzzzY1BicZbKMh/d6v\r\n5KphnKm+RcXe+3shw/CdMs2T9ei9EZ/Nj+HEkIiJpXzySy3ixi1bK+bP2syf\r\nNMOI1yq0qG9BJV8Exx1Q8RfH6wRBi+2XbSdBGu+ryhfSjMTJBBK13TeSEZz8\r\n5AKHqLo07/d1Q11keJyKfnF4KslOBPYprT/NE+4UFnmEtOKSSXp25+VjGd3s\r\niZ40dabNwxELUIHWLmHqURUzPei3iAkD3m2K4iAhaOdkgk6GNT/fbBZJDt7p\r\nrv+opZwTh3dBynW4GTwHCPbxwxJlJr37ibuPydjBeZyYs6S0uRHga2q6RbPp\r\nVqAGJxm+lLouLUQyyVwBBLdx1TVuqPJJHKs=\r\n=Mv2c\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.1_1649712197780_0.7603850089242921"},"_hasShrinkwrap":false},"1.5.5":{"name":"@rest-hooks/core","version":"1.5.5","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.cjs.js","module":"lib/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"engines":{"node":">=0.12"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV=2019 ROOT_PATH_PREFIX='@rest-hooks/core' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:bundle":"rollup -c","build:clean":"rimraf lib ts3.4 dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api","normalized cache","swr","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^1.2.5","@rest-hooks/normalizr":"^7.5.2","@rest-hooks/use-enhanced-reducer":"^1.1.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"2e6c2e438ffb6bbe6cb2ef15fc2d1db5e6568fd0","_id":"@rest-hooks/core@1.5.5","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-9FZXLe6Uh9FLwU1srqj/aF+wJCDstFVKyowjFT2cp1tLeCni4jL0/pbRZ27IDcb6aM/T+zGRvAyg9dJHu8xKUw==","shasum":"9327ff4b91ecb3d32b0449c732d8d43112083b92","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-1.5.5.tgz","fileCount":248,"unpackedSize":894883,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAseoTGz6sc9PbIqEudH7LWSl9dREIKfW5jLFMRvCWFBAiB81q0MJC6YGsNqBX4VujZOybfVjYmpWmIZh2+MbhKgoA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWv+2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0RA//XE/LVCaFwt7BYRwVX3n4BxdFf1FapkT3/UuhtP8XxqL6CmQk\r\nGcTIPvpXSK9Qv5wzJ+VLdZ3FdHeQMMALn8v7KMnsgiXKcaRjyGI0s7LxRLKs\r\n5UybEBL/O6wu546cyKQrw4oxQQEyNlCv5xagFVgN0DPxmwT6tBn/lML1jJ+B\r\nhe8lEL4DQTKR7eq8WnQw+h74ln11Vm+CvN4wH4gI7ZDM/A05VRIR0PUcF33H\r\nVyfwS9K0je1o+vyZeRkHrBphSzV5L7RBHN09EwcgdaB9v2c7ZUZP+y0Jst7Z\r\nWfR/tLYL9mRDRZHfO/hh/MAk98+9T9QaqXwazhEx/iDCe4E82qUWU+EIbGnG\r\n3WLwExoNxfcqxJ1eLPFIBnBpjM0GKf52WFW3IAGUu+xRXJ+pNgF6lbt3taGe\r\nFMkCq+NSfq/sYt0X1eA1YufRDvNUJXywyr59PcYl4rxBc94/dxWMpWBiDgZP\r\nJkAC3qFpMPJDHQ46m2yTd6Po7REkQvoAA+UqaKZ3jsW7wmwzYJKaQAY1kGtB\r\nDwWDWNxTN861L5MGCCsXraMiogCvKr80h6Ck+wXhgEKPLQsEdx+7fO5JbmfF\r\nGYj0D340/YxEM4W2WXmg2dbxB5dPnMSgkQ2xMQsdEADaP/qRcDndN9kmh05/\r\n5MswB0zUjPnFLo2eC8+L/IOrFdPLDXlERWg=\r\n=4IE+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_1.5.5_1650130870116_0.16274971213574618"},"_hasShrinkwrap":false},"3.2.2":{"name":"@rest-hooks/core","version":"3.2.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' RESOLVER_ALIAS='{\"^@rest-hooks/core(.+)$\":\"./src/\\\\1.js\"}' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.5","@rest-hooks/normalizr":"^8.2.4","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"ce82a4038fa5a245fc12a0654469d3c1ef47bc71","_id":"@rest-hooks/core@3.2.2","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-vfyovaVOKnG16oTTXO2tYY8T4XwKnkZDQcCEDOxS7bjwpKfq85WaLVKY8O8dh3Keui8FLAAspqiDvsPXcTB0RQ==","shasum":"76bfe92797698ed42f614f4a24fb8fe9153e3d01","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.2.tgz","fileCount":441,"unpackedSize":1672508,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7DFfVoJPXZqbw7TzKkQfp3yat+ocZbeqUD3vHzt6d7AiEAqWrbENmnBFsgc1+B26JW8zY78+JA7ey5Wjv3DKEI3a4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWwJ8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrqWw//d+GguNaJa8GD0pplo01l6hyCCj+FRE+hT7UEKGOVRKyCYeoF\r\nFhDGKDp0PiTfZN24ax5knryYaY/4QES/IEvqDKmGuubM9Ij/E+WqE2ULfq7G\r\n1RQNbGlJ4/evYw9TpB/ECcxDC5RGuwjMm2fzDeUaFBf3JxwqbpPaIz54raYT\r\nqVxdkGHqtq8XB4emW1LFReUF2R5tb+LrXSaR+hJd7sY8praf+hY+tnTBvuOe\r\nPuwjVwqI/g/r3p0/wWoBhp+oBPUnSYykNxDyUwSIAVe19v+TYoM07wsyNUaD\r\nG3GLRd32sbKWhkNF9pjwwJdFqhoL02WI36uTtvFOorH0oqGPfzXz0bpzI004\r\ne1JgBGnfa3FOPEVAVo+XG+wV6glhvpW2jjYg1I2aWcVfHbPbDzeiggEMDa8N\r\nRfIohQIQmVCfPGqWk2K89Y7836uN+dR2m8LC3StvB38uQxcTW+ZndxHh9153\r\nUylce0tDxA8pucUBdpfgC7Qp6KZy+AKZxa8ZA1pLXjz6Rthf1grTKFs8TS5r\r\nYA1Q4tHNPMU3myfH1tIIkOobkvMalqgd3RMHlMHvSwuogimu6upppqyMMvk5\r\n1KuG+9uj+7VraU2FkBJkQbijmvPZEbJK/45789qsbQtCSxx5uP7HXh7t/Ooa\r\ngBZWlyG1O0E3/Q1GcoCkqA2KYC87+/ph1sc=\r\n=97QX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.2_1650131580041_0.8981528761663855"},"_hasShrinkwrap":false},"3.2.3":{"name":"@rest-hooks/core","version":"3.2.3","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.7.2","@rest-hooks/endpoint":"^2.2.6","@rest-hooks/normalizr":"^8.2.5","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"f490c35cb1a91a4f740488d28b92d3e3b3a98ffe","_id":"@rest-hooks/core@3.2.3","_nodeVersion":"16.14.2","_npmVersion":"lerna/4.0.0/node@v16.14.2+x64 (linux)","dist":{"integrity":"sha512-U9q1Gzf2iimdA01V+07uCaSWZpgtkUpVn2TGDVW6vxH851EwEyJyHFeK94zTeu/5CWGk5hKWxRiR7y8i7zW3Zw==","shasum":"8203d41d771e265a857e86da7e967a8b00800892","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.3.tgz","fileCount":444,"unpackedSize":1698865,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGt60dGyewjKzcTDUuaaUkbPyIK7NIwTNvzC1ejCM+UaAiAKqiaol5PzkccbzY49wiRq6Kd0Ie1mfH14M4kxSi3tFg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibXiLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrnyw//TrOa271Co220skJKmvEfI2eN9DVfi3D68nS3cz/SC569v0wE\r\ndaBQRxy6NDQgOF4HlrBXNniRID6DFBVRcHld3bXah9/lH09N7Z5fIVemp6No\r\nmL2VpmWxJQY5cr70+KCH6Cx0paYfaS15eS753ZwVjJAqWVaaC2beubdtxgca\r\nssbYqASkldD0rITwFUA/EuIvud7Tfk2nPLM3dyf7WTxOyK5q7+07/tGmkAIg\r\nmAvbM5uFJfE6A73gNE353syE+brWYAgQToVjb1YzeGMjRiYNu6jRXGT3eAhL\r\nCDYWcy08Y9dLnxBzi3kgNehxOKkoLQRCeMEpnpN8/LZNRurVK9Z5zkUNUmpc\r\nULz/6v9RlWZX1N1HkDW9mnSz8yTzXsAMVUzhQzDczYxygwVMumZls2QrMC3P\r\nyf4bOnlRG9lkxbsbYv/vDdfrktcKefWK1Er6jyvKYuSz50bb7YgX8mZINJ9u\r\nX9JBhj+GN0TAk5Koi1ux2nMsPr0CpuAZcQp60EViCXI5Gx4MI9s4Pk2qXwKc\r\nypx8XLlBouQff9INH6wM9rJrQUftvhHg6pErZqEdccvOupgMAGWrmCzTTuQ5\r\nmsE2oRQGdK34EPLimGmUAC1f9UL9IN2CPbI72VkwDXZYZIOIx7LO+Z18f4IW\r\nuQ8XM7Xy00t1ZXcmw2LLq71tqZIk26HCwSw=\r\n=YwNL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.3_1651341451362_0.9068499314136789"},"_hasShrinkwrap":false},"3.2.4":{"name":"@rest-hooks/core","version":"3.2.4","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.7","@rest-hooks/normalizr":"^8.2.6","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"3ef33e89500d586bdfbef12ac7f559a9a647df88","_id":"@rest-hooks/core@3.2.4","_nodeVersion":"16.15.0","_npmVersion":"lerna/5.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-sjKPO2md4S27cFV4uD6HLZXUIG84BuDYKlElnDuYJsMvtlNNteCHkhq8ral3WNje2Y3be3+odlFON7OMsDsVLg==","shasum":"1a454a3f088c0b51bf2ba9edd3b277d39f1b3c53","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.4.tgz","fileCount":383,"unpackedSize":1605722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpDF/RGsNHaoJ5uvwxhrqZmOLLU9h49PNGVVxxjWC0QAiBITgITjX+P+d/N/vPpVW1aNUVq3cjHKd9xWJO8cHftug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilSWuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoG/RAAnsoSae7gMM575z43u6Vzoq5sR8T84MUXIHPf6Rs3cQqp1Nn1\r\n9P4+FSIBYiFrJcE2UDOevdiBd39Xw/dhzf0hyKXtVcmLw0tTYSFyM7lbNA0B\r\nJrwqY2zujIQV8XuaKRyaAiuxbH+mbPs4z/v+/i+MWlaNxMtH3KW2NcM4+MnC\r\njhcMbpBBXeGg0UTSDZH5/fL/lZmWCR+gXsC+yULYWE0UaR7CdqUi48du9syT\r\nyGsy5n+TT/bjtYvU5uF7mAeyzLqxCCDHDykoKkrqIoPf+9e3SKIlWV8CpN4z\r\ncoGRlEC9k4d0wfr1kRmUS1djt6Nxz7fXvau2C7egsEbIGnSW+liyavIL+I+J\r\nBAHREC55Ia2H0bLoRoe4jioai9noBEZMo3u8st8c5U4xFIN12XBblN/iSS6e\r\ntLt0yAtis93HvkuO36xLo8TOzlCM7xE/PtqO/vUtO3Gk2kH1OBEnfFtrV12S\r\nxYXxa/78tRREscrmfzNhTnWw3vI3fK/m796vPpdBZN5vIf9nk52Yx1xtYhcM\r\nWp+idM22zp93UxWy0jF/4EiS6VFBkKWw/IvhZDd936wE+IrCrpAMzB1MGhRC\r\ndo8Lz45ORpKvxQvfNeNGZZkruNLSi5YJ9xxwNQ+amazOb8GqJqYLjAQcuSOl\r\nooGSrEZxQh+euyrYWSf9GHF0bzwY5hLDGTk=\r\n=9cr5\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.4_1653941678476_0.34146025893730014"},"_hasShrinkwrap":false},"3.2.5-beta.0":{"name":"@rest-hooks/core","version":"3.2.5-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.7","@rest-hooks/normalizr":"^8.2.6","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"e8aff22fe754bf47691b8f6c1b27d45335445def","_id":"@rest-hooks/core@3.2.5-beta.0","_nodeVersion":"18.2.0","_npmVersion":"8.9.0","dist":{"integrity":"sha512-ccOfkUMshlA1r5l6WhSazky4PBiV7O4BsJKA4egMFHPsITBUZyu+u8ShKj+AfnAHj9DHWbhfKZcb8cX5OhQnYw==","shasum":"9c8b7ce723550980d7c6878a65f6458a6f61ff4d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.5-beta.0.tgz","fileCount":444,"unpackedSize":1638939,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLtWDXBvewgTRut8kHtyRr90MnS0IQxtJEw8BRdzh3AwIgV4Vk07kBFo67IUc7wPF8XZ7Y6sc2ClHVC0ei2Ydt7Hs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimnomACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrN8g//ftxFiO0UuWuGl3Vw2CbAJFCtT6+nta2SSrsaVdArkY0bA8LV\r\nLFXpPmpDQMiQg9VODusPQdSJMx8DOQa0Et3pRRvoYb6ynXuSpIiZQVZxnfIE\r\nl2TovD58aPbNjR6kZZpTBip2xL8sCPrpYxOvmyjfYk0h/shIUa8mkllOjeGs\r\nR/klbFO1E4HxdVKjJLtC+ygcJsvdwAJ13oexRtuSYJsakWKu25/5u4ozqPDG\r\n1DHCxzWVx/U4gT4ONOZr7Rg9yVb9lCmTRsITsZucSls2i8/u7kYI13xL6PuN\r\nKcFlEZqvT2IE/iGcEhi77LZBe6rgLxMCx0tB73rib/tj95fw8VtlZQuT8RQZ\r\ndvMwTfxUKFn/w0W8G6+nJCZ/4QTCgfvlkXcw+72qM7pxVMnt9rbaY0FjrZwe\r\n/v4qVwec0VAQU5uhrdm7DtNkrhwzPnCxJxMZKmVn0jaPJJb+G2joTTxKU3Mb\r\nVJA0m0spUxwVBoNK6dnG0Cq6RXSAp22Mkprk6WKHGltPDUB0Y6cRgdeo2VCY\r\nXqqNWb2gnf+k7hftHfS/x9uT4nAYFjBlwICXtHo7zrefvsYLe+nByeDWeT1Y\r\n9/sGItG7RMYc8eKuCBo0Ypc0/E1SO2jVrxYl0Vwl1HBkTuOCT6U+hjf4+aGw\r\nJsVsXbzxPwSAJ5iWnoq624BCTL5ZeUqU9nA=\r\n=9sxL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.5-beta.0_1654290982225_0.9142761867499469"},"_hasShrinkwrap":false},"3.2.5":{"name":"@rest-hooks/core","version":"3.2.5","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.8","@rest-hooks/normalizr":"^8.2.7","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"41f23be320cdafcdf5b5df5842dc6fa81c31fcdf","_id":"@rest-hooks/core@3.2.5","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-QmltRD//Y0mHDgy2Sc8kApUiGcZnuiHAQ9nbjQTw334FhHRmtlhaOsFpvZEq+OKGWgnxJYzGT9lJtdKA8Gx53w==","shasum":"91dd556f27125613e3c02f5fc572ecd0191e1b59","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.5.tgz","fileCount":385,"unpackedSize":1611655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjxMvW8wMAIzKn32S5L4dYWkH4XaVugNIastyvDo+ejgIgElJuj0cJibK4HQ2nEJiJllS7J6Xvaa+7vOVdeJZlAc0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivwMPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMsw//dxBRisbtJt1NDyO1+NrssB8oPqPi6auikG+vDmzPEjWnwXca\r\nZUq2q7tbWvIBQ3MORzr7LxMhagUPLuQVm36usNYnJ/ZZw9l0anHLEanK+qPd\r\nOqTi0teBgDKUsmjTlvfOx5lgOileWMrLXq9mOHPwRGFDxZVv2IyC6Q7Va+u6\r\nsWf0elb8ueVjhprKy1W2xRyxIqaBo6euf6FX33O0GY4gH4YR4+ESG0Y5rXmb\r\nREiCVh9wpLhvcn/WJqlZHd2IU1cOZ4K1jr6iKswJExtdSQPBY3ZVcb8sMuy5\r\nH6OGHZkZgtSZgaWv6VMYDezVah65q6p0FMAfFfbAUPC0BkXPaxj3rTyND+4D\r\nwq6grnuhTi3DfM58oLjKt0ZgH5TPVcJ29BOv7L7jzFEZResFsjqZBz2Rjek6\r\nMoymG0m2FhrzHNpW9n3qxG+CsJ8r1IMYrOaSHTnj4s9Ub75eIJoAnZSW9YNy\r\nugnUEhDy/PsirdsnYJ6jRXqnFMq3VpwVU00Rf71OYntcPjWyK0/0utnukFZV\r\nPaV9lwhY98nzXE28v0s6gPnsxtY/e+0MSizfi3BRV2lLHW9XKmEONYU8WWWs\r\nq4KG/DqMt54GTCR64cKR3sLYIzKtaiQdtod3srO4Z2tnecLsrXEsJU4ElFqc\r\n1b1VClaMUPuRyGNEmufIauKtbLx9xSOoaf4=\r\n=k0cK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.5_1656685327601_0.8761277636009619"},"_hasShrinkwrap":false},"3.2.6":{"name":"@rest-hooks/core","version":"3.2.6","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.9","@rest-hooks/normalizr":"^8.2.8","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"2e86aee48ce7e2b8fc006f719d79a96aa6584a2f","_id":"@rest-hooks/core@3.2.6","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.1/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-Stdq/n+2RzmVsFLIcHqRFbMc8vB+ysGi/QIj8UROCwKVFL8E+rMKj+9ugHcffZXUDYdd3MjUcyjdlmYuH11YvQ==","shasum":"57935100aeba8f4644338e3981c4b4eb530c6445","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.6.tgz","fileCount":385,"unpackedSize":1611839,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTkRShlTuqM3p/YSWTujmJBLnhkn5PIqQDWNOrzdXvcgIgI4lRdAAP15+HR+RmWx7tVruyhF3qr6y5KkVeXC1MhQM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivyEyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpadQ/9HjURpwOnlAy6ndjM8qt4v7ynG8OmipDIO7a3dENB/T2kYiIK\r\nSn+rm6QG4joBDIzvqZT+vL5wkLGrYzWQ+QvyvvOHYQ76s10FSLRF6cJf6da6\r\n0urpCvGt/2XUhIZqV3ulzgaTIzYtIvkU4WAoyEGTuCpd64/zjTGDjGdp1iyu\r\nshkVFdEhvSbnAhsljGtoEsEac5dc/B7pEhOOSBACm3+haUozfh2T8qtJ+/RG\r\npqZbA8puMmgEQ7pgXHCg7u8BjpogSK3oEJ2Ko77/1Hwbt5YtTJiPrd1WkG0V\r\nrB35/elIsXeP1S68VazPgVBwj13v4+qgJnni2Kvs2Vj8HVQpzDzuvENXGCho\r\nFEPaXheMm6Sj6aT+KbVt5NWoGX+C0diqGCJriG18c9dmq1chWChWdoXMosWL\r\nmdm7NUMGeek+EF3X8JpwlHasKcMvzZ9bGIviScrjt5e8o5FXhB7eOdsKMKRa\r\n1j+Gs2yw9UFg7WH7/OG1qlGMb3qV8xn85i5dw4OJlb38IGxYkU1vNDcuq98c\r\nETJFTPDtiOynS6DrHlJikf2kRdwAMKJ9gSGuxpxpmE2DS87H9hvtWcyCDaKg\r\nbnhErNs9Ei5biSZUcKf9MKvOj7Gzer7locAlUak7U+n58N9rITzH6ZsAhEI3\r\nMTf6sWoH+5IuFcnLISwo52oXGrndhEpLppk=\r\n=pgm+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.6_1656693041758_0.14336157663682858"},"_hasShrinkwrap":false},"3.2.7":{"name":"@rest-hooks/core","version":"3.2.7","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"node":{"import":"./node.mjs","require":"./dist/index.js"},"require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.10","@rest-hooks/normalizr":"^8.2.9","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"a34477ee514c1d705555dbe5338cca976df665aa","_id":"@rest-hooks/core@3.2.7","_nodeVersion":"16.15.1","_npmVersion":"lerna/5.1.8/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-eerW1eu0ol2lTswGuevaqhQnDhc5cSmoLXB15Y3hcwSaVSGlZ3X8L0QD3HS+oGk4W5deZSnCtUbDgo0Xtb7QQA==","shasum":"c80055a15b770ce28a0a898080885bd8779853b2","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.7.tgz","fileCount":446,"unpackedSize":1708081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEDj0Hywlg1mtBhPo04Xr0PwnlRlfwMC95ExTDR0coMgIges1kDyddznvHPMh01q/KfcQqvhoUqV1hldQrKD+Z8c4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2CSqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6iA//bGor23wzLzjErUOJTY7oZ/wK0thRvcnzq+GwJeEAyJy92OPg\r\nR1wQQdP4bTlqRM++IrCzv9Hu3HZ9an7fNQ6zMA0zJY/gJpE9duqwtSVvEESR\r\nYaS5aYO/bXoxzIhQQqlLplziZ7NfIbEhER/kjb9URD1lrE3x9yCzYwejX+SE\r\nP1aP1CnqLhJZydHuZoxOwlCcv/2rCPhKLiXx/rY5/kef5vCn46NnAKqH6cPh\r\n3xlq7V62Gbr67yGOs/uWI7UuR9f1FW98gajr9YTYbTmwY9xO7vJ+xrSXHBQ2\r\naR/SkzMCvXAt36s8OR4gdMMvDHXbGrTVgU/XmGJbHMEPfnkUl7QFWH1F0u4L\r\nZz9KdMQ944uvwPLu6NR9DIyNJLdNcK8DoyMa0AZ0gPMju4Yw4CIblPIWDQLo\r\nSAlXIEH1ZjnzfKKo3Dsmqcxa9Fxy5XnRaBWh5TWkL2fejjEEjLWThoPMus3B\r\nhRp/C9fILJNNWMLOssGmm6lm3gtNer8paNjZWv7/GnPz4ya0/1EzCUSikur7\r\nXnxxfAuZZyLVHhMDNrBwmRuYEZCDGY2L5OAqkU9mkfYUdbV6QR48aeK9mfgm\r\nEUwpK5/jUzHNn0InMTUJXDTNP+/gORb3jxpomT0Y86BA78TQ2afecF1vVP9w\r\nz2LDdsuOPwCSaQFapGZ8xS6MGT6yUyz036s=\r\n=nX5k\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.7_1658332330517_0.2169878015989204"},"_hasShrinkwrap":false},"3.2.8":{"name":"@rest-hooks/core","version":"3.2.8","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"cross-env NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"cross-env BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"cross-env BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-p build:js:* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib","test":"cross-env NODE_ENV=test jest","test:ci":"yarn test -- --ci","test:watch":"yarn test -- --watch","test:coverage":"yarn test -- --coverage"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.11","@rest-hooks/normalizr":"^8.2.10","@rest-hooks/use-enhanced-reducer":"^1.1.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"gitHead":"d43a9197272bf682be567b0b92eb23552deada3f","_id":"@rest-hooks/core@3.2.8","_nodeVersion":"16.16.0","_npmVersion":"lerna/5.1.8/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-uFVgtyTr2h6cSYBWXAOLoxTpHZpAQT01FNg0IJNQ9YoN2MJXMkjqHtjFwIcpW0tIiOXaO9tjlCAHoMulXen8vw==","shasum":"612d18e860fc6eba96e4caf281b3c4e2b4f90aeb","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.8.tgz","fileCount":446,"unpackedSize":1708407,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3AuIyhozJ+75K72w9zJF8HlbK71GWhmpO3Gnep08aQAiA8dnxpx5ntbEu3z9DQY3ZyYXU4nRsp70YD1TXqaFFatQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3Aw4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmtxAAjM427V4yS+DiwS7TCSGeBY6kowl/PNeR6FZyL4x0EGsIlU5R\r\nENFfgPMhwwjw8jlz1CwlYPNEjOELD2GRCBpSrZJnY9PsavM4/O3/ULoXrrd8\r\nPAMRrzSOQpi+T+ma7RLMkijU4CefmIil5V6tWdc6/GfqWR1YLeQ4nOtXbwwd\r\nbFE7LsIbIgTcMYeZePU5/Ek1wk0Gw4wKUXVtC236jDr6rbDrf2EAVFRXyid8\r\ngG4W9yBtGu6y9L4we6HM2mSZXpxKZpF+To40DK1Xz4V1POrqmeqWl8SZ4dNz\r\nVpivC1lUGZNYDRJbTyGIWzquy7l2aCuCThV3B6Gm0exNl1sp4wq2y5hkyjFp\r\niM5wppYgR6OmIOe5Axvc/kthKg4Xfw0tn+3VTCH5SIcYsZImys3xH1oqNjDx\r\nTjLNcqwI/fE7Mlc63cxy4xqlQVpRHE/nwTO/evZKWbBjOsZqAO4LfYcWZnCQ\r\n3WOeEbwNt00skj6i2gCpHOP1uLs81FW0GdRXEwHO80An2+MFEKBAs1otnhxs\r\n3GkwZc/IuGzNFQ+omKnBkLrAe05RL7uldNjXzhYgs9OKr8Vg3JyRkkieJTxY\r\nO13/j1dkw4UwuS63DN4NX29dsbINYCHzdZtZE8MSJVokRH9voHaSJ3JZ3/7J\r\nJ43Yf9/XiiTHe1jPDDD3vvfkzR2vklg4j5U=\r\n=BVCI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.8_1658588216326_0.2947481072073572"},"_hasShrinkwrap":false},"3.2.9":{"name":"@rest-hooks/core","version":"3.2.9","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.2.12","@rest-hooks/normalizr":"^8.2.11","@rest-hooks/use-enhanced-reducer":"^1.1.2","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"^7.18.9","@babel/core":"^7.18.9","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.77.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"5d2bfe84df68f8f76aaa2f223f721768f2cabc1e","_id":"@rest-hooks/core@3.2.9","_nodeVersion":"16.16.0","_npmVersion":"lerna/1.8.0/node@v16.16.0+x64 (linux)","dist":{"integrity":"sha512-NnIio7IpdM8wVGI/6K/egSgop2rrdMLmvFtiHP9B/53LGJFZEP4IVpoTK3jFH/PkzziKcPD7AS23TOjx4OFyOQ==","shasum":"84f44c44757b7b752f10a273c5ff25802c8e3a10","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.9.tgz","fileCount":447,"unpackedSize":1647731,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAwofPhVSOGAAraD9YX29hGUzxr/X6uGNCq6/C/IeZ0qAiAp0FngV17CIgqpbsUFVWUFcOXZE0v6FJGa7hPabUdeDg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4C+QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7Iw/9GI2vb35O5Foqwea0Dkxf5Ol+FPZIyNSC3oFFW+lDJuwBZevY\r\nndOqsQ1KkJrhLt+XqUzY+/Gmju6jMYXRUu7A9RTzQkTw+488099uysJ/4XOL\r\naM2buZwgGIE17c0LLjW9uuGGxWyauDKaW1qHdrMnbGHVMHnK9WsqUUDApnbg\r\nzZeHAIq23wjxOsKJ3xDuGgeZYgkAETIM5F5HrXL9914QhCsJwudM4FKqoV2b\r\nm/dU6FkmXcr1wuwMEs5c0GBPGaN49dGtxBnxUgQvwB5EjTZRR07NQyEGM8Hj\r\nHLV/nMcDr7K1YhRgTqSrXDdnUmXPgLXtdHl4axYlwgAR3ZdMaZ5mU7DSVi5m\r\nH1UELtNOSt90OEKMjz/R04fD02ePOtxSxuUu0rlvPhR4WhwbPSvqNRUXNZPg\r\nedLJadNAdurQ5WRsJlXkHQknG59h+zjr2QZGy0P4ocAI4odxciSCT/yEPajC\r\nNOc88Ydr8RElwfYoxDDnTxj/W2bL00J42hP08xehWWQ5Gr/BHR8UVnnudv5X\r\n09OCS3Ok0ol6GvZhlrnK4Fcnna8buziqdGwP84yqfm9bI6UeTHv3zgO2R2NG\r\nb3jVHYA1vYIL7HBqYCAnmDogIdvMUpxRKXpe34eKgtmHUfqbwCE2vRWniy3d\r\ng87DK0McYK6Ciwy0kimqJ69Wg4pEGFCEu9E=\r\n=P2sc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.9_1658859408031_0.3596118631095604"},"_hasShrinkwrap":false},"3.2.10":{"name":"@rest-hooks/core","version":"3.2.10","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.3.0","@rest-hooks/normalizr":"^8.3.0","@rest-hooks/use-enhanced-reducer":"^1.1.3","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.18.13","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"c3fe597ffc0f2589756f26c21a5842493f06301e","_id":"@rest-hooks/core@3.2.10","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-zkUNnNcHi0HaWqWJTXG98FFfsU7RT752urwIHHrqv9GidOJaYo9LHI8/GlpDepmfb9PMudWI3AT839TIXU10dg==","shasum":"8195f49ad30d76b2bb9fb91f7f5d62e13766ff0f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.10.tgz","fileCount":447,"unpackedSize":1639053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXBSf6p7lndJdKQfah7lFNyeeeuYahj0IeyfoNYAbcvQIhALa4RO8hkSIu856bxANN6bae/mY3zr2foFFDjYSXIxFn"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFDCmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGKg/+I0ipFfJDqoBkXYbONJK6ZcDZo0wK0luWsnh47uk6afJvuyOB\r\nvOKmz/XujTI+xAeLfU5BKUIdKd4/FF7az6cgDkwdnH6Rgu308qipXXQVjby/\r\nCV+0d1rH4zNKwag+hvYIaJT+a6Iz2O5vpOFG7i8qeHdaxf2Xk7Q5Cwm6hxof\r\nnlip//Ve1CqeQ1+2WkooV7gwozS7ZzCS6lnN6cy9VnSmWz/Fuyt9FHHaWGrB\r\nd7Kb9nsuvToDrN2HctRvoatt2Demca0FMjQuR3MA3jERdr23geFIVXioBf6t\r\n+4p0CPC12ZhLV6t6MuXr1Fu+Bv2gw9kB+NwD97yBE1rstcVeoo0SmHN1g5Ow\r\ne4BKREW2MjljildaGYkUiLLdpb4PlBtj47f1fXAb8buFKLTgQtsTYI0NGaGg\r\nFSTfaiBGMrkCkQ7k85VcJdjoEAkXlbc8Zb85IjePl129EIaF89qyoRLtik+z\r\nv22UaB3RR6pbj9nqs3iesS6A4hco3J4PlmMY9TryoM3UQtNmprXX0xZqwJ4e\r\n1Jxn3/fvNad1Q/lNQo/XbPdU3Y74OMuStcAYZRzT2sKaV0BRbSUegQc5fAGt\r\nQjeCqMImxR9kP18v7Ysc5URaPMaFv5LNrN+uM6YkKAulOHcn6fDGnWCoxZHX\r\nl0MXwBXMCzCMq/XxS0TPjysasAkCYN7C0YY=\r\n=yi5/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.10_1662267558450_0.5611426049027755"},"_hasShrinkwrap":false},"3.2.11":{"name":"@rest-hooks/core","version":"3.2.11","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/endpoint":"^2.3.1","@rest-hooks/normalizr":"^8.3.1","@rest-hooks/use-enhanced-reducer":"^1.1.4","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"bcd34703c6b56af10326aef525830a29c39be368","_id":"@rest-hooks/core@3.2.11","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-l9L8+FQWD5DKVmfyHQOQf0vkSHm4K6EWmNf+U77s7PFhABMAoIzOZzV6b1igCY3Sou51wcFMJcuHS9WccmgtmQ==","shasum":"180ca278e270b5205011cc535160656ef5bdd730","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.2.11.tgz","fileCount":447,"unpackedSize":1639052,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJZd0S6yhPFv3j4Iskp7mTOcCy4Lx82I3WNCch3A096QIgbEMLQHRb/rOFMahRCDeRW184xH69x4IoJEjkrkKT63Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHSDRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBGA//UJ/v4eezo4VYbCqUVHI9gc2voFTD1BA6m5U1g3DWGZW16LxM\r\n053jQpP8i4uvum26MsPR53eOOoqC0kguf4D/ZtpQweLm0X+ZlAznSxdJyTTj\r\nEZzvCj+FvHP6Tlg506LRcVij2YeWfFgIbF2rI9TiZ1OufShjURWfAM3HY2NY\r\nnzrNhScSuNZFtYoZj5D5RaGAFG6nXG50S1iwBEDNfVlWUeW/O+vorZ8lXJYE\r\nEeWhqaT5kdM/aj6u12QouQYtNYgq5IK7h4lMs928QjkIOpGhufNzEV2mVCrK\r\ndRwyehbxm2IIYADwNllr8lUr5qn1PzNunaA1Cu/Sms30kuhRaXdMClHyPxkJ\r\nCARmwgl4np8UH6fFWPJshE9iLs5kqNoXL/+FiFIRXTUzPXrlMCK0T/oES5zX\r\nWqm7QeiEqHUXLupc4EJurS1HOf/F4gk6qjhKeHPDtEtSueg6NT22sDpydZ/2\r\nsP720Bz/dBFylg0mlMtuQ+KE7Nov44PdC59NCr3ASpUnp0PTOeMer1A8BD63\r\nNqUtYqm+92+dBTTB6XQKf8UTWCYt5hBjaGksP6K3SJk3KurNfJ/bfkCu1Of6\r\nZqwLN0hTL0xwPpi6imIr+Tzi7f79id6cUlxYCLfANU0e5R+J2Ug4wRcp0uTh\r\nKnnOMuraHPyHCRoTV2sUu8ERg7ffK3pVM/s=\r\n=RTll\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.2.11_1662853329539_0.2625090823177618"},"_hasShrinkwrap":false},"3.3.0-beta.0":{"name":"@rest-hooks/core","version":"3.3.0-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.0.0-beta.0","@rest-hooks/use-enhanced-reducer":"^1.1.5-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"5eca3fa097a45c4b72688f561605d7e64d308b17","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.3.0-beta.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-nR7+ebmGUWLVw6J/S6M9Fu2E30s+MyNVi91x0kGcbA3LSj0BiqyPlrnv45FuFUUL1K4OHLgKU8GO8QZzIxlmPA==","shasum":"73ad2c86d47d6f394d793d612e547993c854f494","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.0-beta.0.tgz","fileCount":440,"unpackedSize":1595631,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdzvMAcAQs56qO37aejcoP1pFaTYywYlXE4FZjzG475QIhALYbxr0BV7ywjZOwZ5sHhPmwWXjkVAQikk2sq13Ak5Jq"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJJzhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJ7g/7BPPASVZJQhAvnLszm6/EmmS8V5psl9qhHwPyzijUKVhtSX8p\r\nbyT69ABSHuGq0uy19t+g33r6j0wBc3wmQ8bGCDc6B5eiFk7tnpocDbY6NPLH\r\nBwk9NYEYI524ROu0whT1JWxa2I+P8wvEfdjcvDj+BoRol7ag07fj0uOPfH1M\r\noDEoa1JFwPEOwrlfRPXIHGMOEhBvshGd5J8yiysqINQHL7C9LHLOt6NgGdez\r\nTmRNgz16gqGv41MYbFB7BLhRlJ4xrdqQ+xeycvnKE+QEuu4jXBJLBUeJHrEz\r\n9YuLD9eWwIuQuPYWONenGZj2vLu1KAgXhkAIxH/O8WC6aieiTtN7zSWT9hd1\r\nrHxNsZ3S7dWmZp3m3+sp9+Vu67DQeSK36qhVFHvQVNwdRWN5zS524AA1tERc\r\nIAM1KaMDx2TcvJxvxAwSBQC+CnIkB11FlotYz6xAVTO26UXOm/++e09BcEw7\r\nXCe0e/seoWtZfCnHD9V3g1Ulgt6MtXYyDRuX93UidRM7H3CC6bc3SudBHKKX\r\nRyudcQQpBhgMHXMvtCyZxtAJGulSEUM1CF3n1ZrK3JtTwhdQtoDNeB4pOve+\r\nd1b/2oAjrPYNhB7asCxYzbgl0B2b7YAhxVaUNwpebXuwGIaXaqito30/bB/0\r\ntkBDsu6fADGNxAnwpjr2P2PGjzn0uuaGgyA=\r\n=o2UD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.0-beta.0_1663343841139_0.949220394825613"},"_hasShrinkwrap":false},"3.3.0-beta.1":{"name":"@rest-hooks/core","version":"3.3.0-beta.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.0.0-beta.1","@rest-hooks/use-enhanced-reducer":"^1.1.5-beta.1","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"c542809da0f5020bbb7d1694b67f75fc9250f759","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.3.0-beta.1","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-3imrDXttTz3DB3IGR5Mn4KbXWSLCkji5vqIu2s+TTYLeohv4phDFi96qXKECAPsPNx1U+uvYar2zJERRcpbdig==","shasum":"4d097c12d5b35d2d757741523352cb440d984124","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.0-beta.1.tgz","fileCount":440,"unpackedSize":1577740,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUADY2mTn3EnaKA+3rZwGSFJY1+1OK6P/+u1H7qCVRdgIhAIXDMpbkT4nHy6IUi/DwhT+NaNg3OIq7J1Eh72tjewl3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJjkDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcTg/7B3F6ERh1VyNxx0yUAFio8IlGUIJm5inlSUVbpPSLb2265bS/\r\nTBWW+3WwVmb8WTJwLyJ7ZNFxIIs3Oij4xJmc5VGjkMWCDu+pl96L8hY6fevl\r\nj/cpV+iA9RP5sIdfhsFLtRTepFOyvhxOcTlxTgu4IZjRZpe/VXsV3hHDnMPO\r\nPc6I1wU4NOA0dSYskQBA1HUspPKur3jYXZZtfMuo5Zgf0nE2qJUgDZylPGdN\r\nslctCWSJRFeB5USe64UWsgpTJhmVvoz7/zedPr+c0+N9nAFPvrzQ8tiuSAga\r\n4fHVz9eJvsW9I6bvBiKjUwz8wcV8lOopIYLS34RslNMaM5MiGE6qdX83oMFz\r\ndjjgTfkeNvOsBVruLVe2VLf9gbup4HCgW7E+thYw/yLfba/ybMeKyQXV6ZT6\r\nzBBosPGgq0dwhZK9eJvVgz3HwHi9GPFWNSMk63rJ/Pa/hEfUR6PvCLZ2R3Fw\r\nxW1ur0HwvTGRaWv+PwkcmLD3zBBr2Udlekw6pIaTnrasnSb6+9VFG0RXubZQ\r\nkDfD2yNuIJDKFH7i5vZ3uLZz6zH7mTW7lcvH+Bocv2dZ3ARZVqBK5kINZj0M\r\nCSBLjOZUb0vcbf2pUabAK7Q37UjnOOx/WG7bvtidPVS6HkL5wn5GUhJkWu02\r\ndfMaq6Bzv7uKkhR4ixdxD+mbvonHlQ+zv48=\r\n=AM/z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.0-beta.1_1663449347191_0.21686381227115215"},"_hasShrinkwrap":false},"3.3.0-beta.2":{"name":"@rest-hooks/core","version":"3.3.0-beta.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.0.0-beta.2","@rest-hooks/use-enhanced-reducer":"^1.1.5-beta.2","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"e111578cefa1cdd5f467aad6c24edfa0b701ab16","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dm/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/docs/rest/usage), proto, [GraphQL](https://resthooks.io/docs/graphql/usage), websockets and more.\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple TypeScript definition\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() { return this.id; }\n}\n\nconst ArticleDetail = new Endpoint(\n  ({ id }: { id: string }) => fetch(`http://test.com/articles/${id}`)).then(res => res.json()),\n  { schema: Article },\n}\n```\n\n### One line data hookup\n\n```tsx\nconst article = useSuspense(ArticleDetail, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### Mutation\n\n```tsx\nconst { fetch } = useController();\nreturn <ArticleForm onSubmit={data => fetch(ArticleDetail, { id }, data)} />;\n```\n\n### And subscriptions\n\n```tsx\nconst price = useSuspense(PriceDetail, { symbol });\nuseSubscription(PriceDetail, { symbol });+\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/guides/loading-state) support\n- [x] 🧵 React 18 [Concurrent mode](https://reactjs.org/docs/concurrent-mode-patterns.html) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/docs/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/api/Endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","_id":"@rest-hooks/core@3.3.0-beta.2","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-1Z3hJ5kkwg/ujjTna4SHfyVCUoJtOHds4d9iub552TwK5veE6ni+VCgKw0CdfBXut0CVRZUCQ+gNhe0RxY8J7g==","shasum":"0460c38f7d4a8a50fd956422b02b6d2a6fe3eaf8","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.0-beta.2.tgz","fileCount":440,"unpackedSize":1577777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHbCV17mBY+J40V9qZIExmsl0mFFyjb857fNF69xyCUAiAHz4SHTLZ198ab2VObN6G9Or+W64YEs63wJAfkHw7bFQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMNMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoz1w/7BiBBQfCwizIN6iT4mb2jB9FfpaAfzBe5WPtgZWw1idD5x9NN\r\npZ+9JXhlIYjmhri58C8FlMqbobpZWiLZa0qMBPLNtXV5F72dPboDljXpgBXq\r\n7MMSAySFBX9YXdEv8OTQnEqZ/GwgDhsdh78FQZWW9qI8DQytjzTQr3REoF2S\r\nWgFgH9N0FIFuOLoEsr0enHCj+aYm3trPKj6s9u0XtC3NMPYbFErLe8G0G3JE\r\n9/JmJVhqOSUyFgC27AiRL0CHeUCaIHsKzb8TulWmQCW/JTUWJSPCGxGJKtJ0\r\nMqjJAQlcWgrwrMM3Gk2vc2FYW8Li2scGkbq/lBOvyRYeU8jrslJiO4x79IVw\r\n6+pY/FQJnd8PbUAR/XmQjEQN1GMMvEcU0eCDq6e7Xzp6b2+m3zGF95NYeFOU\r\nOXfpIyDJFb3Ao4kIOis4x1Y0HdbwGpO8q3Qrw1ty8Q3QWK4Np1U8JdJ/cQ1v\r\nZEw3kwmOkY1/gMpLMOfNYdywOqltN7C0AaadQ+XvcjnBaBSRK9WFVoUqy8Zx\r\ntNMXYpAbQSxmyBBD4GeXx8fPIa6y3cng/NRr8CDjNrh3kv6+4HiMyvZxuywh\r\n5pGT3q2MrBp8+/sBimfsPUYcWKrF2tt75gRQRvqTFETyCkbXKn6OLOMPnvm7\r\np382J1v1ShmSZc1juKL80tI1YHjJLwWVHA0=\r\n=nALf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.0-beta.2_1663615819833_0.7852859670940882"},"_hasShrinkwrap":false},"3.3.0":{"name":"@rest-hooks/core","version":"3.3.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.0.0","@rest-hooks/use-enhanced-reducer":"^1.1.5","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.18.10","@babel/core":"7.19.1","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.0","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"68e5a619f000f10ff814d49f6ed5b9c1c9c09bf4","_id":"@rest-hooks/core@3.3.0","_nodeVersion":"18.8.0","_npmVersion":"lerna/1.11.2/node@v18.8.0+x64 (linux)","dist":{"integrity":"sha512-P6TKFPk5K1aehLLtME4buR9W5gKLLFixdl6TxVpb3LEeXfbjF4loIighYZ00Op21H05f4+Y/jk/jZAn3A1QLQg==","shasum":"aedd92ded31e9818344aa92d1c6bfdfafb09a6a1","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.0.tgz","fileCount":440,"unpackedSize":1577756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAuSSCe0GlWT3cyqCSF7bCIt8KFEN14Op9dNbwFKA/aAAiB+sFTLutcZQtbwtzFn1sB3K8D4+Msf3qXtcMwFUaoaLw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKMX0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlbA/7Bcb3vHfGXppKQJRbeCiR9Y6FECzk2yu2n1K4TaNO/8gK5Lj3\r\nZNCHHAZaspO9AxWT0+qnyB1swZlUv9YL9LD/mH/kqbCxsZtf7SWuFeM4a3QT\r\nglJ12tDyfkdwY8VRjTokVVl5YHBC5tjkTkWKW5coIWrt0ARY6mi+o6YuufYf\r\n4PT27coIT6TweTty1zrypEaUWo0j0T/zJZ00bnacOC4tZjAhX0m2Ectujv20\r\n391ojoiIKJpQv/gdjL9gRfUqR3pIkiKY/pQRBorMIlM5mQc3za50Lh+muCkR\r\n+7Dnkugqc49a1vS0/U2a/ujs+Z+vGkNMgVENQugQpwSRG0h7MTWPsDDXzBli\r\nQSUPdXQaD+g97RvTQjG/gIkxqsFx3pMwTx35Kw37X+S/qoMYqn/XP7fNAEXh\r\n+zk6CMO/6LGDN2Z8VgD4lP3wJVfRcu9iH9E/Pcp5lxgPaNzO6frEhqCviT82\r\ngW6m30pgJ4Sjp35+HmP21BCss/o/SO2m28I4dzTh11+o8F4gwxoRsqXQfKsk\r\no25Ds4CMCN+Yg6we8o2N4RRRjreOd6sa3UkYRD0ApQaVXQCFW7GufEgOoT4v\r\nFsUWZwDl+jS0/Fh+kKiYDRAVgZqu5k+WugG4G0/Cnjf/fh92rIP5ybtBkJtW\r\njxAnJQzF4gUQ3pWmSFPrg+uG2ckEy75uSHE=\r\n=WKcb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.0_1663616500743_0.5442240672610479"},"_hasShrinkwrap":false},"3.3.1":{"name":"@rest-hooks/core","version":"3.3.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.0.1","@rest-hooks/use-enhanced-reducer":"^1.1.6","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"c5079b6eae8b77593a32423bde11cf5805f1a994","_id":"@rest-hooks/core@3.3.1","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.11.3/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-3OXtJAvviSPiQ4WLF9NI/dXznLeL/hMCGiwvYAIPccl/qlftbyOkr2I6n2d/Dg+2A8xojq8YIGEOsV57NkEyuQ==","shasum":"1b0b7e94285edbc0c252eeb42850a18f84900769","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.1.tgz","fileCount":438,"unpackedSize":1552887,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF+JE1S02W7O6GraoReEJdZcFUHNyv/Nzvc3NT0OoI/sAiEAhHpS0K0VLFBCfisbcv3ARi3eB+L3TRd+Zb45ftphTvw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjN5bGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMnA//TX7X1tidKMkYufQSf8DWAhDNAppokdTl8Wh5fty7sxh/mFdh\r\nQ4hmNSSD+GUwUif959qipmXyT9j+Zbb3ltYzktL3F8L7AWrvt4l4AYf7yj0t\r\nswkXdEfdrPPvK75kytyJ+Zq9VByXHMAdNyMWgTp5cyABeuEutBdxX/oD4Le0\r\n+BvajKjGR9BkfD6WKrKfuw4nYPnd+GO7ml6no0j7bBm06aMdRvDJjw7piF9w\r\nPYz06aNdT8IA6JSuPFPbRBOyKNywMlE/j1pv7OvE+KVM+BtiO+kB6lln/OdJ\r\nraAIWmw4xslo21gniXiVTknc+3UNGuGDgf7l7mruoeDVUNJRd2rtLQj0Mlhs\r\nMAdXOTuVt4XuJ1AlbUOhczOGmIs6VwMJNGxV3yu/FXU1qv7me9+BnSkIoDAR\r\n8RASc+YiiKMAjlkw+Ldbtrip1Bhej/DSSLnik/t+9ETWGWUhxB2D5Tj+LIhN\r\nRzLOnzRQ58NLz+J434Xe/ghIMNe/GC9lXaKdXKcjQPOCMswHkkX+2sL4+QrH\r\n4TO7ppUpOqYlWNrKWmWQvjtZMZaRtso7Uhngoh7lcj0CRk8FPfV8QJEjv9xo\r\nVxkLfk7daNSNWCzlRI6KEqh2dW5xa0Vm4ImRRtdWuaNpDWv4ioLrbM/GPywM\r\n8aL7gEnrpAOPfAjTJSZj8TaQBBHsSUUZMcM=\r\n=65hZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.1_1664587462710_0.34046449238775645"},"_hasShrinkwrap":false},"3.3.2":{"name":"@rest-hooks/core","version":"3.3.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.1.7","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"da31e4b96f2a337951b131c131b5ab8308804c1c","_id":"@rest-hooks/core@3.3.2","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-aMqfVWDnBQJ1cpZ6QIPTTJ82E1zLUb7Z17hzKA1gris3yvuj2uIGc8j0Gfw2yQt0xPW8ezyYY2i7v0dETAmAlg==","shasum":"18654484f17de7512ee44051729b957e85d837a9","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.3.2.tgz","fileCount":436,"unpackedSize":1545024,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4DAyle0hjK4Ok+akcDoV3jlrQcxr5ZpAoc5UcU15//AiEAu9kdLzPV0/ojAIpIlvhQFZvk+hC+7tEfDSd5wjTRPnE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjW0zuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2eA/9EwaN/SDeJKREW5C/ZPBX/TfxHTFlI//9O3nEp5Iamg8JIX+a\r\nsEII3fUYYuK551a4jM3Su0HQlUKhq2iZIWrBDg5PrWXOai9UZBFI2aX5CqPO\r\n8hUTT4bTjAgLWT3CgVAUknR12xYxfWmC2hs4tGh11D0c+iZIiirAATDynFd1\r\n6TB1fVyKxXpDefd+akx0npnOTlHIp4cQl4s27gEkOhYa1mraXRcVqZjBzvf9\r\ngt3h/oimYL0KLFe7cfJ7mbU8rXGrvvyEqGK80X8bvl7GGy8CXSfr7AUq5qO8\r\nqj2EajT9mig1Inbw1q/JyTXusA8a+/pJeNHN8d4w6ZBALvd9AANEIMwVySeV\r\nmX/3aVin50uznsOl1/J12NSO61n0geycpX3Qi1v3emuZbgJmVthxI1DC49aW\r\nnYth50kZ5XSoG9X7t5EOgOXF3Ef6LBsNMzdrx0TzM02NQ2IFdz5q//8Pc1uM\r\neuh33H4SRf4thzltmYWKpsvrGPr6Cd4gWOALPFi1nTe3DjWE7e3QO2osrI7I\r\nV/iqmZI54J0kwrWq1E8roKx6O8rGJ9X9xZVtytW8qTNHTELQqEeS26ASB9EW\r\nqWgk+lyG4turJ7bd+LTJevAGuVU1l1low6W6ksT7hD46C/j4ito84JhVFxqO\r\naKnW6fzKUXimBE6+QgINTiu4xy20Yy0S2/s=\r\n=qY7s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.3.2_1666927853980_0.7588713288993139"},"_hasShrinkwrap":false},"3.4.0-beta.0":{"name":"@rest-hooks/core","version":"3.4.0-beta.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"49b9d2217e908c84e43a90174dc619d341a397b8","_id":"@rest-hooks/core@3.4.0-beta.0","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-VO3rHXPE5PlxQhQEOpNiUSdrfQob0Mb65jM44D148unLkJf85Teunhqo1N8+wjfjSfLzG3qa1vfJTA/yzeungA==","shasum":"0436ad1fa44a67478e9deb77979c42b942b6634f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.0.tgz","fileCount":445,"unpackedSize":1575452,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERxK2wCLtc4efuKplw7p2x6PcgTXSB/O12iqEeYez1vAiEAtshJ/JWFvZDjV8kv7G12aO5//KZegaUmNOhnSAVSN/Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZDIuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmooJxAApRNuSxkh9CHIvZONJOcF8nnSwxg8quoJuTX2qT+U2Ao1kxnH\r\nryt+mNNGt6G2Dg3NEYwwwfRSycJ3Xm5irVIpQ0gdRcWpxsW//pev1/MGJGpX\r\nLfk8bjuXWNaJGS8IHZ2YeN/o8S6t9mFHjesNh9CziIcEUDJEgBdigN62qcdj\r\nv+9FXxu3ptwVDTGlK9n5nnU0+6reX0W0uqGIExT46HXH/+s0tdR/XwalXcKZ\r\ntWlAyRxi+olTlLjofaqo5oQlO/KemiJsDBS2iEQJt1eI7cfdRJUXX7NOc3Gy\r\ni3oyhlRZ41tP8HJHkfS66PwF/OVuyg+G7GOhx/SHtsxDV+HoO1vS2by14ILj\r\nRflQLzVb65K3HR+9+T3MZ8y7midFNM9PzV2dPK/QmAHX9Luqwunis4+fHQ9V\r\neSc1ThWg4jxdKkbSDNCJAr7sw9Jd1e3K+EQTHe2tpTz176IK9c/nQ0hr8DYk\r\nDEtslCCLASAB5O1wUncbKauq8JOG/eKsHM6RNAQ6ZDY/zPh5Bi21X4B2w8+N\r\n7+vMaS7TyM7v7dv0ucATJ9AvW2tfvHKfx5hClADP5cNDfBFY924oRxX85pBw\r\nULWFeVZCaghkIbduy3w5Tq3ZjmlhFYFf2tMmnqMbP9LQ71wUafPOP0q/EDZ9\r\n8ScNu+Ge5nE9yo50/I3W8lyhOgwoER337KM=\r\n=tBvn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.0_1667510829767_0.6195717429544212"},"_hasShrinkwrap":false},"3.4.0-beta.1":{"name":"@rest-hooks/core","version":"3.4.0-beta.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"49b9d2217e908c84e43a90174dc619d341a397b8","_id":"@rest-hooks/core@3.4.0-beta.1","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-g9RnWu2YE/gXyfAZ94MHW0l3WrHH4Iuafy3Pq/5zkv56xr3Arcq2CkCcqPCYZbfx4aK7kLYUPUVh59/40SWqQw==","shasum":"0a58c9e71f17c667f9186326db998ad3223521a9","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.1.tgz","fileCount":445,"unpackedSize":1575665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdTF776ySomVey5Vc/ghDRXQ1Q+Qf7H4e9h+WyVAEagAIhAJteg8m6hDdAly6kDsjjrAa1pwTvb2qfOiI4QbJeKFKV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZDPWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVthAAl1AvGYduoWdzPVfvvbjTho1kUS3Atc7CBCpr0616euq7HG57\r\nGqbDMBcQYRJV9mcdnYioQ9W4PS2GBI3HD8HgLe7X7ueYsncgqy94XEBQPYsM\r\ne+lfIT7VX2WYHc7Ec3L0zp3PwNrp95Pez8XnZ4v8bQqdy3dhAHKlYbNs5NBa\r\nj1NJsSTCj3q/jqKt9nHvYtboRtNnQ30kbjR/1BuW4rvZLHWdrSmvO7VyR4Pm\r\nfV+mDasYFMIhEjEMBVPsFosieUmtui/8Ljj+0Fo5M1Eyg25t/Miregel/mx2\r\nl5e8CY3u1C1kzo2NHJoEE0H6urYZ7js8ero7IVQD/WFAbFk7dsEJiD161/3Q\r\nLRkkUZIUIxu82dkZoBmyHUNii1mBGJntdV3bMhSkR532zHDdRyD1Mh40Ga0d\r\nNgbdQPYJTjDRpvK6vpMX9t+D3057CmoAzUzUsOPEa54+RhcbkPD10r206p3O\r\ngLIOGH8v9m9gyyjapzlV4ICgsVqd9n/svk28sphO3h/AQtpw9jJeltztUVxg\r\n5GL0wZPG/t+nqzdePgwd0klL7w/IiSGcJ8O+1AsbaGfaRitt8bPCUOKVgg5o\r\nyxkufLlDFKyO5TKa8/KyfiX7UiClVIttKDDXy1C5tVVN/kY1RdlDAYvAdk0W\r\npxYuxr4oUwXLDZPH13mwbYtylvOrKa60T4I=\r\n=9nIR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.1_1667511254220_0.5645942659678869"},"_hasShrinkwrap":false},"3.4.0-beta.2":{"name":"@rest-hooks/core","version":"3.4.0-beta.2","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"bd9a0c4e3cda6f25ca0effd46c47a1c63fbf9516","_id":"@rest-hooks/core@3.4.0-beta.2","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-x3Ue28Ls5rFGhSLZi3IczO6BQPLBMhlOUStqDhuGJIkHPU7MWRcwtYeePZX2uLId9gR3GAJdG8siOwmOLC9mhA==","shasum":"0201c32e3ebd44dedef8cf7bbb031b55860d8ff2","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.2.tgz","fileCount":451,"unpackedSize":1581937,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY4L+Kn8F1Avna/kEdcHkae3KlweNP6UFnWQ6/W+9ZGgIgO5ZpxGvZZT4f0dlCp3DQSUAZBpL5+65GA+HAlNtUc1o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZEnKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHiA/+K62eRq09Z34NVdd4OhFiItIYPpO0RWnL55g52OmiM8Al9eO/\r\nhHqTLE5nVcG916p/5DUow4z0iKSyg8fBJj2gzqRckZrYEO+y8Xl6bd74ydmS\r\nl4HCbdWoRouhibEKPD5ka8fi+y6OfOqTwe0wy07aWPVaepsq0b3UYceL0Y6L\r\npZcfGOIg7oJFzklCGaU9LKlt4lDhYoB22WsLr8z6E/qtnt4bvBmsstSgtMc/\r\nE5B6uM6NCgYdS0T5s+PksRlyRwnrJfvnTY2YEoFJq8xUh0SiHTWi0ZH/7wFm\r\n06WLmEE2+xXLPemA06a2A9e700y8/yMVAfJgddhnaqRMLvP7YAlYwo8yoHa4\r\nTGy9MdTSMxMelU4YyoKQp6/y1ymBw5DYZGIZ0eEZLb6AKAC2Sbv4xT7H58BI\r\na14S0m2L3sqqjQdiNTPZD4gJ2gf1zrGpv0kiiUFeUQmCvW3X1OYz0SgF0uMB\r\nWh7zssLYYFaKBj8HyhPDJWHdvgTGH6SSiCk/8NRtM0EnjzLhzJJ0JTVwoeH3\r\ngDPw3shk4KVSc8xNmmAMAE5t41J66ugRgqGOsJwA4gqRHbUhcyZfp1xyWDc9\r\nXith0GJks6ObGeNWmDMyF4UingBnE2g165UPqOQOTEw2/CYols7fZ+7IRwT6\r\nbz8WS3dkC2Mw5iY7M6Ehkl0p+qv2GyZB2eo=\r\n=b2CQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.2_1667516874519_0.1397095785299407"},"_hasShrinkwrap":false},"3.4.0-beta.3":{"name":"@rest-hooks/core","version":"3.4.0-beta.3","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"bd9a0c4e3cda6f25ca0effd46c47a1c63fbf9516","_id":"@rest-hooks/core@3.4.0-beta.3","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-+qG1+KqRB2QsvZmLjcE72nWwgMp9dLwIyLz6MICxYsYZi5zucHkQg/ZTQyICaWNrs/Ky2wsmRPweUcJ9vGB0UA==","shasum":"64cb280f74faaf9250a05de90122c7b281b45a00","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.3.tgz","fileCount":451,"unpackedSize":1582002,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC38xbcyr3cIYEbkBmtL/mBbUTUre247GeEmDDjLb3SxgIgdBRacxJYCUXXRpr8k8/2UM5tWV2D88ointxtRsYyUiA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZEp0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmor+A//fTuH+UtnM3+WVBtUhx+yk3lwe2CLxjyn2FZpd3r1RSeZ0tL4\r\nmXX4mvrH4qjW/k0mA/K3ZpCQbiuxRh0AmaOT6g5p9vGYDkg+GNd7FQYL+hZF\r\nMCF8JeRySVLu4DZ4VfKcBYiLpxt3I1AOYRvgroR0tFxn7alrQ5LRZmzOPyT3\r\nVk6YVsJnG0lBykkyurLOhzMWKua+q1kV+rLZB1lKTHt2M8U6de/EtbWX06aw\r\nREphWs+aEL3GQZ7ikDe+PekNWGYkFVlI7Jpdo++cl7Y1ohywsg0FtZVc+6F3\r\nYitIH8z/roJDtHFJ0dIPgN4xAXiv+jNIleVuexBz7ITwGGXTHB8F4juBvtLP\r\ns7YhTgBONJDrwt+k5z/5eNExXwBo7Od8mRXQzsakMjdrFSX2n/nIph7IxXOW\r\nkrrygxeWKklWk6TaNpYrwh+Gv1Fjw9uHSL9/bCaip0BNIvGqUsodGt4rFWvc\r\nFJ7TM8Q4MlxEToMNQhGutLw4lDHimvCplSYwaEpkKgjPOS8TPQ1eQws8t9HA\r\nStXa1ryAnATe44geIiTH5nfXOTI4Kh9tHtZYl4L8q2mKuie6dEVb2MF1euZO\r\nSZHMA5SvL9Qypb4XOcycuJGEwp25b4kzJKTNA3mEt9uV7kOPOG+90Wfl4HlW\r\n0BCw7CsppFzwSFX+F2BgsGcIPdvJmVxeQKk=\r\n=i7A0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.3_1667517044334_0.7059079683226595"},"_hasShrinkwrap":false},"3.4.0-beta.4":{"name":"@rest-hooks/core","version":"3.4.0-beta.4","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"bd9a0c4e3cda6f25ca0effd46c47a1c63fbf9516","_id":"@rest-hooks/core@3.4.0-beta.4","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-VNMFvChr4ep2Zls/BxKvPw+gm9iIpJv3ScOaUMmPSub2Uj/V2pSotvI4gmLkmqnsbR/WsF69t1eonoSdewwxmA==","shasum":"9b496ce1480dd59cfbceb743df770f94c8e73874","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.4.tgz","fileCount":451,"unpackedSize":1582823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQJKnVVZ79K3v+AX7/cmjgxtR2iWTBjGyFCgXBQ2ibWAiBJ+3Z9oN0rZx0Hl5LSpTqGdEwY9vo2nB7hpdhE194ibw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZEsJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpoixAAg45V0/lNr3pJ9uiPEVKIgGIx21ge21ck8udCTzrPcvHrq32d\r\nXDRnlL5OGagVtEacnnlDkpg1L7088L2i5ORUI43wiwDgvhJOX7ZkZ8JOKe5u\r\nhjGnqUZEhZvQTBHFTqK+IyfPtQTDsw1EvgBGnCcJcYA7CfhZBpp0IDXjvjBV\r\n2I8SX4JytClhOaYPMkaVN+vxYiF/kcnGF1AQX7gj8OD10MC116aLE4AdCakH\r\nlbP+Fqr1x3X4K+YWLZurJv6kNo2sO7DPNa/4gEe/mpL/BTo2gQSpGU5HmfS0\r\n2SdhieFJHy4wl4mrw0cOy+Y5zrkQc/zTNBjmvudhQWz4e/mBvi6sPzQWIp88\r\nGcnO7IuVKBzifubKhsjSLUopcIcuiV5HVqXz6VuuYRjrZY657Qvj2wxDr3wd\r\nOm+W7HtN0oh8ePcNHQwVc1L8wWpAM7vTUOtTLqquL1DIkflFhiRXucO3+lBV\r\n708kORnrLHS9uI3IIUVVINQo49/p11XIPL1bfTaCBr4ksBf4FzNqjHZDBsIV\r\n/sZFSBp+JUTdzqlj+ChXnNu2U9n0Pabotl4+3g7c1t9VwvSzD/ZZ0E1cqc/N\r\nYzmAupgbqEJwlSMcQyYt+kr2pamUFmneRBbBqg1tPASP0BP6y6RE+SJs4ho1\r\nINrzHoZF1//J0mzVKjWZ27KxVqa6jKbTQnA=\r\n=NWju\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.4_1667517192991_0.1807661024339211"},"_hasShrinkwrap":false},"3.4.0-beta.5":{"name":"@rest-hooks/core","version":"3.4.0-beta.5","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"bd9a0c4e3cda6f25ca0effd46c47a1c63fbf9516","_id":"@rest-hooks/core@3.4.0-beta.5","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-gRgZFfDCxIF6AWihPKM2S6PCI8hgLW6moGTd5j+K2m8Xyd5bqVbYxA93ia2xPFYUIrH8Toli5zm+R1NgRauQdw==","shasum":"10edc3a97db5a5371cbb372e330e5b94f6e95c32","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.5.tgz","fileCount":451,"unpackedSize":1584615,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyvERjrREME1gWP8STupbxZMhC+YTsZNrKEhymBauCXAIhAM57yYjnkX5IDNRNknLgF95/H6S1MJF1HwObMB/7sybS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZGneACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNCg/+I4GoivENa1DDwdmU6Em60DKCxYCE1d/e4yIB623ub9ySL7pi\r\n2gY8oour4IhIVjwRygdQKBMddm99YoUptlth1KrUhDrPdCr+Y4i/t9uTLmgK\r\nr7136MuERAw743f0RlmLxUn/lM6kql9yoWgyqffmNr8Ia/T5kDgGJKlK+cVC\r\nV6l5LtJ3ddXA4/mv/h0q+HKwh4cD988MEd0ZTqPZ7BRSKjTkHxOnV801LC27\r\nShe/K29+weWXFvwsMXDbB+6PxvXysfu9vLJUCb1so/H00Qj4vn5p6srKPusl\r\nK0jpcFjsP9gWzv5bf0YvMkU2C5jUEbo0YIDUM/2HfLcN2sGOOxhIObTvWbK+\r\njPniel5YkuhSk/Ik6c/3n0h4h38XKEYDVaiGkMNeUui9qOFmZCQHdTOV5Av8\r\nvw0Hl7qATG024F7JArMPkA2kA7H/c98BxWkwCkpNV9YWUzK9IvvJ+/hIXFla\r\n02W48PKE5Rngg+E95Gh14koQ0URVNk6jMFXDJ0V+gWU6Crw5y8RoNe38W/YK\r\nWlLrPJfjvGWFHVpvyvIaZ3hTIy6rGRedOKCC3f4vKwhHOC6+rArOHXRiHZWV\r\nbki0d/Jo1aLn2ZwNh5F82g1AuduXLhZrF90E1nHV8L1VzPJz7kosx/Oy3HoF\r\no287Rfv77zbE/pKQi1eqt+aTyCpWtYOiLk0=\r\n=tUmJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.5_1667525086506_0.7867347645500378"},"_hasShrinkwrap":false},"3.4.0-beta.6":{"name":"@rest-hooks/core","version":"3.4.0-beta.6","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.1.0","@rest-hooks/use-enhanced-reducer":"^1.2.0-beta.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.19.6","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nAsynchronous dynamic data at scale. Performance, data integrity, and typing for [REST](https://resthooks.io/rest), proto, [GraphQL](https://resthooks.io/graphql), [websockets](https://resthooks.io/docs/api/Manager#middleware-data-stream) and [more](https://resthooks.io/docs/guides/img-media)..\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Simple [TypeScript definition](https://resthooks.io/rest/api/Entity)\n\n```typescript\nclass Article extends Entity {\n  readonly id: string = '';\n  readonly title: string = '';\n  readonly body: string = '';\n\n  pk() {\n    return this.id;\n  }\n}\n```\n\n### Create [collection of API Endpoints](https://resthooks.io/rest/api/createResource)\n\n```typescript\nconst ArticleResource = createResource({\n  path: '/articles/:id',\n  schema: Article,\n})\n```\n\n### One line [data binding](https://resthooks.io/docs/api/useSuspense)\n\n```tsx\nconst article = useSuspense(ArticleResource.get, { id });\nreturn (\n  <>\n    <h2>{article.title}</h2>\n    <p>{article.body}</p>\n  </>\n);\n```\n\n### [Mutation](https://resthooks.io/docs/api/Controller#fetch)\n\n```tsx\nconst { fetch } = useController();\nreturn (\n  <ArticleForm\n    onSubmit={data => fetch(ArticleResource.update, { id }, data)}\n  />\n);\n```\n\n### And [subscriptions](https://resthooks.io/docs/api/useSubscription)\n\n```tsx\nconst price = useSuspense(PriceResource.get, { symbol });\nuseSubscription(PriceResource.get, { symbol });\nreturn price.value;\n```\n\n### ...all typed ...fast ...and consistent\n\nFor the small price of 7kb gziped. &nbsp;&nbsp; [🏁Get started now](https://resthooks.io/docs/getting-started/installation)\n\n## Features\n\n- [x] ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Strong [Typescript](https://www.typescriptlang.org/) types\n- [x] 🛌 React [Suspense](https://resthooks.io/docs/getting-started/data-dependency#boundaries) support\n- [x] 🧵 React 18 [Concurrent mode](https://resthooks.io/docs/guides/render-as-you-fetch) compatible\n- [x] 🎣 [Declarative API](https://resthooks.io/docs/getting-started/data-dependency)\n- [x] 📝 Composition over configuration\n- [x] 💰 [Normalized](https://resthooks.io/docs/getting-started/entity) caching\n- [x] 💥 Tiny bundle footprint\n- [x] 🛑 Automatic overfetching elimination\n- [x] ✨ [Optimistic updates](https://resthooks.io/rest/guides/optimistic-updates)\n- [x] 🧘 [Flexible](https://resthooks.io/docs/getting-started/endpoint) to fit any API design (one size fits all)\n- [x] 🔧 [Debugging and inspection](https://resthooks.io/docs/guides/debugging) via browser extension\n- [x] 🌳 Tree-shakable (only use what you need)\n- [x] 🔁 [Subscriptions](https://resthooks.io/docs/api/useSubscription)\n- [x] ♻️ Optional [redux integration](https://resthooks.io/docs/guides/redux)\n- [x] 📙 [Storybook mocking](https://resthooks.io/docs/guides/storybook)\n- [x] 📱 [React Native](https://facebook.github.io/react-native/) support\n- [x] 🚯 [Declarative cache lifetime policy](https://resthooks.io/docs/getting-started/expiry-policy)\n\n## Principals of Rest Hooks\n\n### ![TS](./packages/rest-hooks/typescript.svg?sanitize=true) Integrity\n\n- Strong inferred types\n- Global referential equality guarantees\n- Normalized store creates a single source of truth\n- Strong invariants robust against race conditions\n- Validation\n\n### <svg height=\"25px\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 30 22.5\" xml:space=\"preserve\"><g transform=\"translate(-270 -140)\"><g xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path fill=\"currentColor\" d=\"M279,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C280.375,161.405,279.737,161,279,161z\"/><path fill=\"currentColor\" d=\"M293,161c-0.736,0-1.375,0.405-1.722,1c-0.172,0.295-0.278,0.635-0.278,1c0,1.102,0.897,2,2,2c1.103,0,2-0.898,2-2    c0-0.365-0.105-0.705-0.278-1C294.375,161.405,293.737,161,293,161z\"/><path fill=\"currentColor\" d=\"M299,159v-1l-6-1.715L286,152h-11v1h6v1h-11v1h12v1h-10v1h5v1h-2v1h-4v1h5v1h-1v1h-3v1h4c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h8c0-0.352,0.072-0.686,0.184-1    c0.414-1.162,1.512-2,2.816-2c1.305,0,2.402,0.838,2.816,2c0.111,0.314,0.184,0.648,0.184,1h3v-1h1v-3H299z\"/></g></g></svg> Performance\n\n- Stale While Revalidate configurable cache\n- Only re-render\n\n### <svg height=\"25px\" viewBox=\"-10 0 512 512\" width=\"25px\" xmlns=\"http://www.w3.org/2000/svg\"><path  fill=\"currentColor\" d=\"m483 395.171875-38.734375-22.375v-79.640625l38.734375-22.375c9.566406-5.523438 12.839844-17.757812 7.316406-27.320312-5.527344-9.566407-17.757812-12.84375-27.324218-7.316407l-38.769532 22.394531-68.839844-39.746093v-79.542969l38.832032-22.421875c9.566406-5.519531 12.84375-17.753906 7.320312-27.316406-5.523437-9.566407-17.753906-12.847657-27.320312-7.320313l-38.832032 22.417969-68.882812-39.765625v-44.84375c0-11.046875-8.953125-20-20-20s-20 8.953125-20 20v44.84375l-68.882812 39.769531-38.835938-22.421875c-9.5625-5.523437-21.796875-2.246094-27.316406 7.320313-5.523438 9.566406-2.246094 21.796875 7.316406 27.320312l38.835938 22.421875v79.542969l-68.839844 39.742187-38.769532-22.394531c-9.566406-5.523437-21.796874-2.25-27.324218 7.316407-5.523438 9.5625-2.25 21.796874 7.316406 27.320312l38.734375 22.375v79.640625l-38.734375 22.375c-9.566406 5.523437-12.839844 17.753906-7.316406 27.320313 5.542968 9.597656 17.789062 12.824218 27.324218 7.316406l38.769532-22.394532 68.839844 39.746094v44.839844c0 11.046875 8.953124 20 20 20 11.046874 0 20-8.953125 20-20v-44.84375l68.882812-39.769531 68.882812 39.773437v44.839844c0 11.046875 8.957032 20 20 20 11.046876 0 20-8.953125 20-20v-44.84375l68.84375-39.746094 38.769532 22.394532c9.546875 5.515624 21.785156 2.269531 27.320312-7.3125 5.523438-9.566407 2.25-21.796876-7.316406-27.320313zm-256.5-22.425781-68.882812 39.769531-68.882813-39.769531v-79.542969l68.882813-39.769531 68.882812 39.773437zm-48.882812-153.953125v-79.539063l68.882812-39.769531 68.882812 39.769531v79.542969l-68.882812 39.765625zm226.648437 153.953125-68.882813 39.769531-68.882812-39.769531v-79.542969l68.882812-39.769531 68.882813 39.769531zm0 0\"/></svg> Composition over configuration\n\n- Declarative data definitions\n- Decoupled API definitions from usage\n- Co-located data dependencies\n  - Centralized orchestration\n- Extensible orchestration through Managers (middleware)\n- Composable hooks\n  - subject pattern\n- Suspense + concurrent mode async orchestration\n\n### <svg height=\"25px\" width=\"25px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 189.667 189.667\" style=\"enable-background:new 0 0 189.667 189.667;\" xmlSpace=\"preserve\"><path fill=\"currentColor\" d=\"M184.667,160.301h-7.728V24.366c0-2.761-2.239-5-5-5h-24.5c-2.761,0-5,2.239-5,5v135.935h-8.136V43.96c0-2.761-2.239-5-5-5 h-24.5c-2.761,0-5,2.239-5,5v116.341h-8.136V74.366c0-2.761-2.239-5-5-5H62.166c-2.761,0-5,2.239-5,5v85.935H49.03v-57.935 c0-2.761-2.239-5-5-5H19.529c-2.761,0-5,2.239-5,5v57.935H5c-2.761,0-5,2.239-5,5s2.239,5,5,5h14.529H44.03h18.135h24.501h18.136 h24.5h18.136h24.5h12.728c2.761,0,5-2.239,5-5S187.428,160.301,184.667,160.301z\" /></svg> Incremental Adoption\n\n- Simple case is simple\n- Scale as your app scales\n\n### Special thanks\n\nThanks to [@0xcaff](https://github.com/0xcaff), [@melissafzhang](https://github.com/melissafzhang)\nand [@alexiswolfish](https://github.com/alexiswolfish) for their valuable feedback.\n","readmeFilename":"README.md","gitHead":"4cfd7d06bb036c894069273a321e02425e010fac","_id":"@rest-hooks/core@3.4.0-beta.6","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-xgKSdfYkdnl75OvCMGy8v3CiNOdZC0D8iBynhkM0DqmdyUgSAk9IKdXspGglc4lkU7eBQ118AMU8HaBpnRB8Ow==","shasum":"b3a2af49a4147b2f22ad15ba2d1b19ef1bdd9088","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0-beta.6.tgz","fileCount":445,"unpackedSize":1577347,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGcBLooAQ1C+oDeu9BxAfUP9+/+Fl7mEdTR9mv9dO1HoAiArjK7X/ORYFZdxo/i1247fe1uoTpXK4dG4J0+nkqZrBw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZr+rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpS2Q//ffXNaxs7c3c7P+UszXtRIljV4LygR2c1veW/oENBNMggVArZ\r\n+2xA2dZN9VYyXEKssyTWVXhverW10whaNCrmEvr7hXBaD7AHtugOyJBjQcId\r\nRnlkOyPCd2wgyGdf7XldV6SL28W/j57agYiffLwI6UwWbQWUWLhCP2XsDfy+\r\nDCp6FPNWH2vpQGzT8JzrBm+V9/F21lvAwqV07/Qky9UpcFGWOgqqjGhDlWyK\r\nt7qthkdwknUSlRVT4HKME5G5jWKERWdt8GM1nrZYJSsila8xPHlwCxSEQJnB\r\nTBngDo3iWRnjOrUA2lGWnuT3dEekYwqjBri9957yr+kFbcHeQ9m0hIY7tX4A\r\nSxjVEaezniC5bXvovwx5TwBnaZWOtHBPs93zLvxT8fvtjKvp/i/aqoK+Wl29\r\nhF5Jfe+c4WznTv5odIbgsUBnNAOQz6CBtk46mGE0otVGFKnlgAqQ6ofjr3/f\r\nUWn+4ZULztn+X2CykIYRDEbtL8Jwzyp9jOATh4mp6M7yywW8LKdhW3m8t3XM\r\ng/pFgHP0g7T3bE+5uaweNftL8lUWMCvWZrljPybpvO4TYECMOJrOmavi5VGY\r\nCRojom+WPr7yPt8sBXlv7CMVK4/6NxiClIaOEZWR1L3S7nMCsGssXsIUf3q2\r\nXvCnjepWgFUAi9wEPxxUnssp27WIqh1pHig=\r\n=mJdo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0-beta.6_1667678123634_0.8384416740101566"},"_hasShrinkwrap":false},"3.4.0":{"name":"@rest-hooks/core","version":"3.4.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4 && copyfiles --up 1 ./src-legacy-types/**/*.d.ts ./ts3.4/","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["react","data","cache","flux","suspense","fetch","hook","networking","async","concurrent mode","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","react-native","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.2.0","@rest-hooks/use-enhanced-reducer":"^1.2.0","flux-standard-action":"^2.1.1"},"peerDependencies":{"@types/react":"^16.8.4 || ^17.0.0 || ^18.0.0-0","react":"^16.8.4 || ^17.0.0 || ^18.0.0-0"},"peerDependenciesMeta":{"@types/react":{"optional":true}},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"1b4f0fca08dbcf745107824e6a082a5daff099e7","_id":"@rest-hooks/core@3.4.0","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.12.0/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-rZApwgu6a8eyFC4Rclqc/A8jXCrnnCdPuioIMwrornSZpMiWh5QWUO7eSMTXkHxPiXnrL7M5xcPl+vjCIbmGnA==","shasum":"c170b1a9cb494cd54f955264c23955e0615a6b2c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-3.4.0.tgz","fileCount":443,"unpackedSize":1576067,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFGd8czYBBQ5vJdyg++d0iaSmSLe6kleHL1eorlDMtvYAiEArV0HtKWBOprmNQxNGUsaHrGgfOARsaOkcDLqPhvZAOc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjaFoAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8yA/+PL2Tqd/rjEVp5aHGjemhxZ53i8siShTYqzdDN7smF6/aEd2J\r\n+yI3MB9ufoHSYbkhQMUZyXTYxZQ5pLoN8MedATucdvHpUbrKi8qnDSf46ncP\r\nqN9K0B+Czzy94+aImMVk3aWSGnIvFb/PSyEW96Hrww16SiXhwVeK6K0C3NkI\r\nqLUYsHJteU/kwySkjfkdvZ2DSzElws/2wwWSMugDouC3oIZf1QdV+LX8E7mn\r\n/woak8l8+m76kWVOltmSdjX/LW/KUl7wH/eqlBEq/I5yd2No0OU0rLk80Da3\r\n4OCx+wqvThDAtXc9jWudA9SBAqUTCMewUWmUHC/fuhdjBWbAcodENk52e4oM\r\n5Ey2+QGBj3stOcUSiczzVkQ4L2sdAmxa7Tpz9IGtRa1C2qKPP7zlwkH6kfGB\r\n/Rhq/kZaOy57JvADwLavwYyN8GhncQQd+H8byE3wLnVZOiHHXFExlmiLfl6Q\r\nJJ9dnA4QyZGPun1WytuDKkhI3qzGDi9aOw6zornJB4pvgYjZYj85nhOHhXzq\r\nJm37bmQfUJoNzrxqea8jWRUXpvUdMsT8Lkh0qoO8FflOs1jj1Bv89TDGaCeY\r\nNxHJFjnwl3Cl4VQ/UaYnFlRFcIe88hMkngULYjLjTixouECSUERKmnRvUhkl\r\nrmXWjIa8OWZnmK28w4PyfGDdkgeSlJXu5BY=\r\n=/qle\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_3.4.0_1667783168483_0.03247360127590104"},"_hasShrinkwrap":false},"4.0.0":{"name":"@rest-hooks/core","version":"4.0.0","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.3.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"709aaff0bf50a7be890a68eb348b3710163eafff","_id":"@rest-hooks/core@4.0.0","_nodeVersion":"18.11.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-/1mqDTzWgatHOjTmuOk5aetfH8Bsdqj54C5LJv7EAu5SbG15sT9OtXPlmcVqBCcQz3kqeg3eFYW8uvSuW3CxwA==","shasum":"d9c339441284e855c9a3d83c529dd5552cf3f2bf","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.0.0.tgz","fileCount":228,"unpackedSize":813327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICF0R4zZJny9MRkXoxDegf57brr5JF+2TfjnnR+luvBfAiAwvnDVlEHYqpRldAl4kEpF6FZt1STDEVsOXzuxC4kmfA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcIsnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrwyg//fy24qKxNaKvKuhem8GXy47KdxMbY+fbSQEbOzjJovKuXdXcP\r\nSSwHY1/4anhM6gPVz9HbghG5lESEYE6b5cLbdV6FH7D3nR0ruDq0ATLNEQ7d\r\nI+H1MKBZyKMnAW5+ZQzqzqkbctCNKZI3zZqf5sXATNNrEoSgLy4y79cJCwfB\r\nc27ZMqcwEnuERQZq+2L7qO9DqdMif2GSyNwQ5VCLYMoQ/jeRprCTxhKnPO+t\r\nniECMUmkJzjrtgtmtcYQZAtB65A9VDMmj+WdwXYOfu7oLMf7aTntIPk9tPzV\r\nnChrSgCqnF/kji/ewI+uulxXupxXA0fxLtw+kc+HBMyKc90lyRasSgKH3HMp\r\nFFeohPIOy51z9+jkkmaJzMKtrWFhWS36G3zEScGB7t6Ecid1X7SNVeCRPTqn\r\nb481q//9TfeoM9FwdLm/04Gqjsds/jOb0OXLLXROTgx//L4xP3ehKoA+9t6M\r\n5d5PISojP6tv8yFKqGGu7e3gxQ56R0CI2rg1+Pa1UDqPK5G1HHHkZZlDKEGX\r\nPg1eLN2n4huMnnxPZDLXVGCvEGop1jaz43X+uoh3wuHFqciGRezQ6JrGO+rB\r\nOSMvfSAzPoRa/VNLwYf7fO6NefiVA7pPXAxsSFIfE2WhsoDkgXrfl4yIeAOK\r\n6+Joz1WO8RXl0WklXr/66EDmyrSnJmxiVug=\r\n=xvEB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.0.0_1668320038803_0.8907763574024952"},"_hasShrinkwrap":false},"4.0.1":{"name":"@rest-hooks/core","version":"4.0.1","description":"Asynchronous data framework for React","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.3.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"b2bfdbbc1b196f6d310af14cc664c7312f1af6c9","_id":"@rest-hooks/core@4.0.1","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-3Je0QKMfdgY06W3RisBzVgQzc2PEYGW3ot7HuK6SzbRq/VHw8z1kEqb0kngfuzOyT23vgwEHeX92w0/RN7uoEA==","shasum":"374b72914c95676d12e56f09ff5b2123374a864c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.0.1.tgz","fileCount":226,"unpackedSize":805749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj4EkAZQzmaD3H6I6rNit4VDLZDPNdfKBjCykZzS8ESAIhAJP8Wk8O1tEoP5wTGErpI6N/5obIwet+GG/QIBDbH5Yt"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjcSfJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrbEg//RIJMQOmc5UDJUBOFgql6JOF98UqY9oR5M0vEswLuVaazD7CV\r\n7n9fmRwjuXmo3OlewxMdZ+3Q8SOS2otr/Wy3LQFeKsxaAdET+tZR6OilzaPV\r\naoRpp6MeLfq1X2raDP6YCAW5uD3lUEx5URT7YErrGD2bjXKfGDEYMLr9edaM\r\n14Q0YOoqfWM1lBn1jLTHUucoxdLuu7x4zsYo7INwNDKwkVAVBON5I08Z2bBl\r\nUfVyuafOjn3/yQZ3M3zCPotCjkQGEsaNkMRHd5t+bFlBauSO64+1NTBfumsO\r\n5PU/oFOP+KkW+6KED+Puckc56BzV6s6zYo/ctc3fYzrHjuqK1EmeN+6GqlKV\r\np290P5e87NrHmn1CbO8Fwf8+uedLVk1lQ7WnjAgeQWraUbgQwTEN2Ke10gIm\r\n8nEKI7ibZ7DTThKfRJXrKrdMuhK6Y8ipkhDQTIvuYFPhaptesktxoDrLS1po\r\nFWuUp+JV76bWkBbQszpS2APYftBMgOntDmF8CsP6LxDN2VOwM7tZjxX/euZc\r\nwciwsxi5MaNc1kztooOU5Iis13/sZFLUqgrCyfy2Z8lvkxy6UfAzfmN121gV\r\nAcJstXZTOws1VwFP6fP4t5swy3Y0YBkUZib2V3dFr7+JYfsieaMuY9MVynP0\r\n4poGzmRKvGGQzLuDHctYYuxX/ut6uJzaXQE=\r\n=/ZND\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.0.1_1668360137701_0.8131124372788394"},"_hasShrinkwrap":false},"4.0.2":{"name":"@rest-hooks/core","version":"4.0.2","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.3.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"01f1f75bccd7b68191a7a9f5f3e91a1871c13591","_id":"@rest-hooks/core@4.0.2","_nodeVersion":"18.11.0","_npmVersion":"lerna/1.12.0/node@v18.11.0+x64 (linux)","dist":{"integrity":"sha512-2p58IDFX86vrb4+QE1gbW/cIuO9AoIhlOjlWNOSHd0Nb/v3rRUqMWm/khjxswPiOLBFd4qBH+ZO7YhZqct9PmA==","shasum":"3ad42095baa449219c061de5a8594268a129f695","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.0.2.tgz","fileCount":226,"unpackedSize":805779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkQ0Bu0QJciMv612sMtTSFoEAkgJ6TYb1V/KAm1+j+MAiB/mncxTNzDfm2qDp0sI6yacfd7DCf6k8CMFYlM67KHFg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdIdeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXYA/+Kwv+xzc0kurzbeblXPQ9Jyun4cjbs+pCMvkLgl/IxVDh34N/\r\ntER2y7SrrKmGhBU/Y8vgSaSixTACmmXeCqP2eXaN1xz2G05um2O2har7q31N\r\naXVwAnmpeLETDX9SdiVtpfh3ZgwdBUUq1YK1A8neqf3fcVvNaOaai22aD096\r\na9VE2t71CATkYjkszEXLx3y71ThiSY7mSq8K1R2A6LU1/lqajLOUnPzxBY4s\r\nW28OB6LyarHTJCXl08DQ1uH9lyTA3omNgtzDtFm2mqNf0cuuxBbRLufSyzvZ\r\nEZ/cPSqASW7DoyTePEW1ikv7IzTlOjgVz2kGGr8CNaB1QsDRBSmf1h+SaIW2\r\nM9Bdn2rdCUQ/C+pJ40/pifyalPMg4UHvQZyximk3q552DdaOrDQGWfKrDZVc\r\n+3Ji3H40nGPopyPjilGgs8jATArbqvygYTUVbE/BgsrdoqF7IBZNKagS9v4R\r\nSnhPf+CCZdvL7eGs1bmcShA9x1pvl+ouUHKVpkWzGfSZicTirC0KJmWbi5hD\r\n5+18OGchKfq4i/pS6BH7qfL0x6isKbYf0G2Pms+FvfrEozrM03gRBFhqwEL6\r\nDTWTeNO9+VYQtCxoDWm5LVXpWpQxldQ4zUfQ3n21QdGAy3zV59khvivqQvNt\r\nEAw+8pHiQe4LAP/gtD3pJHI5ZO4ZwrU+M4M=\r\n=Gucq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.0.2_1668581214645_0.3363968178153245"},"_hasShrinkwrap":false},"4.1.0-beta.0":{"name":"@rest-hooks/core","version":"4.1.0-beta.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.3.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/coinbase/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/coinbase/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/coinbase/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/coinbase/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nReducer/flux normalized, framework-agnostic data store. Includes managers/middleware, global referential equality guarantees,\nautomatic expiry policies, data normalization. Consumes [TypeScript Standard Endpoints](https://www.npmjs.com/package/@rest-hooks/endpoint)\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2Findex.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/coinbase/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Framework Implementations\n\n- [React](https://www.npmjs.com/package/@rest-hooks/react)\n- [React-Redux](https://www.npmjs.com/package/@rest-hooks/redux)\n\n### Sample React Hook suspense implementation\n\n```typescript\nfunction useSuspense(endpoint, ...args)\n  const state = useCacheState();\n  const controller = useController();\n\n  const key = args[0] !== null ? endpoint.key(...args) : '';\n  const cacheResults = key && state.results[key];\n  const meta = state.meta[key];\n\n  // Compute denormalized value\n  const { data, expiryStatus, expiresAt } = useMemo(() => {\n    return controller.getResponse(endpoint, ...args, state);\n  }, [\n    cacheResults,\n    state.indexes,\n    state.entities,\n    state.entityMeta,\n    meta,\n    key,\n  ]);\n\n  const error = controller.getError(endpoint, ...args, state);\n\n  // If we are hard invalid we must fetch regardless of triggering or staleness\n  const forceFetch = expiryStatus === ExpiryStatus.Invalid;\n\n  const maybePromise = useMemo(() => {\n    // null params mean don't do anything\n    if ((Date.now() <= expiresAt && !forceFetch) || !key) return;\n\n    return controller.fetch(endpoint, ...args);\n    // we need to check against serialized params, since params can change frequently\n  }, [expiresAt, controller, key, forceFetch, state.lastReset]);\n\n  // fully \"valid\" data will not suspend even if it is not fresh\n  if (expiryStatus !== ExpiryStatus.Valid && maybePromise) {\n    throw maybePromise;\n  }\n\n  if (error) throw error;\n\n  return data;\n}\n```\n","readmeFilename":"README.md","gitHead":"b338fbbfd0a8910e4d368f711b2b7a8910a278b4","_id":"@rest-hooks/core@4.1.0-beta.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-az9O8cdp34aKhX3K3GIFO7pVb163Jdea1ikJIaZQ958e1dx82ufBqrzc+Yev8PCrHNszL9AeDOFCS1DHMhzsaA==","shasum":"07b92a9bd0eaabffb293a8081e348ea2c1506edc","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.0-beta.0.tgz","fileCount":241,"unpackedSize":889654,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8EsD2kBVRHhL6zJHcO8Nf3EYVdhxNqQzNuEILPLrLdAiEA3UgtbyAXCzLDblvAbDjjFloejoh6nGYYmyorlwsMqSA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjetNrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFOw/7BfBb+VRpw5ncCXXa+GcozYRL7tHzEJwvk8fbva7dkSreJ3rH\r\nO9ztpLPltqfqbbfH6vFugsFx6yIx2VQEX+UhlDfoDBz8Mvo3L3WXo37tbZTB\r\n2YQb/Pbla/htCiBquJzQkCqRx9N2kk/yyyB9YbrybZ79bgEkG3dn3d9Rhjh9\r\nhujA2ITWLiS95SCMce2TC6hlUkT9puFKgwIzypQl8IUjMfUA3kNnAK0eCg+h\r\nGSPMyx8tF1QW7Kwb+z/JSiZm0SgDTpfX2iXQRNlVEQ5zOUDHsrvlLrHUwehe\r\nVYxXtwIpCbkQMzH00ZIPOVnMAShrGEjuN35rEBdItKNi23pK9pxu06Fm6WcS\r\nkkZr8Z1zoX2NlNVmu/Hq8P/6fQOgNFKHzx5JrZCTdcPKP3FMI2vuuRroL8Fn\r\new1iuETw6f5i3oBvScPXwsrsEJKXy2oUOIoku72Nw6Ts7wRF6cClULShaB7k\r\nP4eT6oQL8NcjFBw7cpg+MtHfvDHC1L+CBGk7YcoIIlsanRHvMjcxWDY/E5Hf\r\nIJR9yv29LSFWLU3YJxE7COzp1ITYzJ56Dr9pSn7fo5DxBZKYqf/JMwlv72K4\r\naG0F0kV9cepwYD7z2773rpbEzIoAYK2gtmgz+7f31yrtEppDkLdTfYszNY/u\r\neA8bWJZKiAtp/dRSd2C+iFLjom6Qps2Aalg=\r\n=axAv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.0-beta.0_1668993899190_0.10492210186988338"},"_hasShrinkwrap":false},"4.1.0":{"name":"@rest-hooks/core","version":"4.1.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.13.0","@rest-hooks/normalizr":"^9.3.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.2","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"5b829b7ed0f039b8fd6404417e56b2d32218b623","_id":"@rest-hooks/core@4.1.0","_nodeVersion":"18.7.0","_npmVersion":"lerna/1.12.0/node@v18.7.0+x64 (linux)","dist":{"integrity":"sha512-Q3+ErznjiCbOmucatxL2ap+o1QX9QVpX2np0l+/odEu5uXj3jdGItVAJfUiNf6ALAAM2Wcs8ocbyxaYLo0bcTg==","shasum":"ed4ad1ecb165b845f320666116f386da05cde999","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.0.tgz","fileCount":258,"unpackedSize":916592,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw2Ct+6j8h+Nj7/M6V5/3TcR9tfzEyPX6OxfAixN3qkgIgTSC5VEkF5mIyxhJbhGKr5Rj5LSVjZrbcZb5XJ1kOMQ4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfUQHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3og//c0VNJqe3hdQD0vmhkObs0Hr+uEOMJKcs0FG9e/rvhpzFd/Lu\r\nt/E/7aHMRUEVtokk5ccXMcuti0cEut/xaMq6WCCrUfR8J+7Iy+bA5b63XDQ4\r\nMcKlDlOd8XrZ32Jr15TzdOjY9w4Esqs5e5fO5/qs3onA+KHuTw3d0TgEsrC1\r\n7CnIQ38/EVyOUSdWmlX760/oGEOs5WtNldcRyQPKn1zrNs7erZ3cy0dOIt8v\r\nmj7jCHnUh9bj/ynYmnnz5pRH22WMcU6N61YF4NGSTk966EuricEvgAFrLBef\r\n4IlWwKtmYLFCXuEqJZ+SjpxEWh1puC+oZ+g+xMYsbSejVJgJ+4uQykHA2wKa\r\nwCbT0W8WNvm9u4ci/FPpOWZBDSyfS25WLggG7e/ApwDU6hiHupuDOu6YadrO\r\n4gMcLqUrp+VuWVpEzqZBajNrDrJsxdJlfHKFWVaQQfqek8JVZyyi0M97C/PE\r\nSxVPjyEQ44iml9Twcgn+NiZveyb+ZIk9hnkDgNacKBi2MK+z+hJAIbFShGzC\r\nEb927jVVLJ9b8S7PcZTvOfHwspdG1KF4XE9X+0ChMKsyIc1m27D1y06uWENw\r\nZS8/rYay4SoAhvviOZsSajBSm0sUnlJQJbeAgmpKGql1k1Ja+Q+RExEvuUjs\r\nv3Gg8xtI8sUEYe/H2Zb7z4ekdIRDLObdwPg=\r\n=HebM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.0_1669153799167_0.8291330595896313"},"_hasShrinkwrap":false},"4.1.1":{"name":"@rest-hooks/core","version":"4.1.1","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.2","core-js":"^3.17.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"27c3f8290727a434b9382c6c0e6c78e8fc1febcd","_id":"@rest-hooks/core@4.1.1","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-+Cx7l0WcPbqtSYoGV6yTxTdhWehOXOvEKOBHebYiqESpRazTrQ50BBgkJzEaUgKaZveMUJyPpDudQc1+uZr68g==","shasum":"5d0000e2c351d8faed236f30128a143acb74ca53","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.1.tgz","fileCount":260,"unpackedSize":924737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFD7XwnoIXEuJx0s2u4IMFoiat78rx0bw15XkWvVLxJrAiA3BvvVOqNHC049C50RClOWngYm5YDv+oVB8KS6i6duRw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjVwFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMbw//bCi8Wegep5nu+YlytB9vqa5jsLr6vWGZtDWjK8j/EdxZHSZi\r\nKvZX4reRAFxjBl/RA58nH3HrzpzWsVRGyUmTrRheqLGi4vPwFrQlFNzW/wc2\r\nTrU1OTzaZjambh3q0DDSD3mxNFeXmjN3h8DO0WOo/9JRgr5IpvYAkwjI4SL+\r\nWAKDnVQ7PYeiqQGzloVqbLs6DF1l0JDRFnvcTGyLjTwkAWYt8SMm9txY/3HD\r\nbCCGKwL8oE1HGOSU5x8fG5s+GaNQ5dYa4s8AnsP7HY10AOaj3AB6UYKr/Oyi\r\ntxp8mBdHoQAfLBzf0iGCpNOgfjqp42fCRhjzdSZQ0D9XyXneIQFhyFQgCNBz\r\n3Hof4iHu6qMUWJ9YUwVYvDVPTon1e6LUc6GbdOAFo/DsdGAeRgy3RBYcXjwj\r\nuqqIP8bh+bbexAJV1+gYIJWnTF676Ug1GphaC+VEL3lI4fIOrJ79TeMU1Vmv\r\nwtAW2QjQOA4VsU5L29b5kdwUaFfOFF74uLEHTemswFx3km8g6P0YB06VSqWt\r\noyjBdjt5e9Exbelfq320YLx+DgPcTcPKOsbcRe2UWpITig/1+rN7Gyo4F3Kp\r\nS8KuuDgCaCvJR5fU1fKMROC5P4n2OOfSCVXX47SABU1GyZKJFTo+kRhw17aY\r\nannZm8SzSeA10nLN9Ax22N00tHzuI6qcGs0=\r\n=XZFd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.1_1670208517661_0.36274459484344446"},"_hasShrinkwrap":false},"4.1.2":{"name":"@rest-hooks/core","version":"4.1.2","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.19.3","@babel/core":"7.20.5","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"6706fb45ea5c8a3183cb9b216d8c9fec69c2f4b6","_id":"@rest-hooks/core@4.1.2","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-p0IMCJMVeh9P1X7gBh32dhDJUeH3LA3YvpRw29GE1f5DoH2J7NlwZKbVqXivBg/cJ7XcAAppMk9uqBILihllqQ==","shasum":"80422336f88ec6812dacde65f6d8e9bd579e585b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.2.tgz","fileCount":260,"unpackedSize":926041,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnXxruJbEeN77bbeNiUFcpZJFBAbImm+CAvcR4J1XFoAiBbYw3d6R6sDyXj/YDoHr9lB66QWFlL3FeyzMrFLv5P/g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjj7fvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmromQ//WJd8Gm3s2R3cSder0oB+guhrQeFksFiBJjdYb4R6OpDdAgPo\r\nrwC/SmPTFoqQFiLnz/qOFo4nQhjloEoMaP/ncJnzSG1xJQlBC2uBhaSEQqCp\r\nZKMoXJSfw58NyKuw+FSVVUvYV2WEHmZsGRun5FlpghOGwqgUDruvFN+2LD3t\r\njnd9ygLF3+6Var+7UEpQhQFugTnLxqIbTqbGblQxW8qfE8Iuv2VSc0/LfRkE\r\nt7zvmjQ3o/CNKDGtB0aj1sEHr34SXV7QP+xGEzF8Lkte3jhAWNMXYWfZ1Ehu\r\ngANRSuAPNOzKxvgl6+0RaIHLk5yJ2AhYUWbhDEo1EVrFJViHLxhRBbTgVi8m\r\n6BZsXJ1vKYYH8mc9cZV6QD6gkKeKivQ1iDP8esmkbptWux6Nt/VQ4elzIbcO\r\nX/jyfNVubSt9dnim9w1orvZEHG4E7UVtxlcOIwDW74NzdUEUmt+WcQL3a3mt\r\n6vLnijDZc7vbiMhB+7o2huASIy9VxryYgIHG/6+MhUMOHb2XdcLUefbvIwJw\r\nllUdJAabMp7JYMQh/ILkWbmaNa2UU1xIZ+pSTJf6sOjL67S7nA2DJrqyC1nX\r\nzpmC4VKg9elmPLVdrV7YEr9AaRZi3zqyvIjDHmV2sjVJ3/m1j/3SZtYdCwZU\r\noaqwHo03tBNIGHTr5RN6JEogQDUr7a14JZA=\r\n=e/nY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.2_1670363119064_0.7207883220840412"},"_hasShrinkwrap":false},"4.1.3":{"name":"@rest-hooks/core","version":"4.1.3","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.4","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.7","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"78a50ea056eb897adcb9b36b16d77947094c29ce","_id":"@rest-hooks/core@4.1.3","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-tvdl5+tRswhH3TZt6JxTiNjbDhE7p0LcPYq9bIkrCVrxaUPxTd4WdbT9/RFrVvoektTCal5V4B6riI5ogGGoDQ==","shasum":"261652de175acf6c6a847c48b8aa69840e3b14fe","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.3.tgz","fileCount":260,"unpackedSize":932629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDS5VkvrnTUTN8viacZ21KqOh6q9CXZ2dmHQR4lEz3RrgIhAOB83VEYNNvVTx6xRt69Vc7rUctUEgcqImBeaIjtJkq3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpdWeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVhQ//Xyrmr6C84MylVNBS72mllvMkp6Ih4QJOs5E8g1zDVkp52MsK\r\nIacTqNOcSPoD3fz6iZZm0ZjVWvPZmjLtzJwaIDo7kyWtCSMn7Zu9S3TfPinA\r\nFrpQD9d+mdJ10bzwzgmpZUe9SSuQw4PcAJUfYEkyfSf4+5MNNRH/O+FGR3e0\r\nKjNmhA9sDuCN17UbS97Ecki+cEF+hIL0g3hesvp0fwrits6qM8OaFQfGgCNB\r\necBEUgnrsqfB+sKW+c2aTwb55x288EXSCwNt3I2TNcGWTsTUXH0ntpTKJGn9\r\nlBBa3q1CBmxQD99XIa2tkFgFjZeWKPbLNg+j7D1IdfU5EPUAbQPV84Gp0Dtb\r\nTIzFVuMnJv1A3Vsgp5qd5azYEJz2evwZkiCLwoYpW33N/w84TV+kX9kaI5RO\r\nIHofVCYS6y64Yxk8Xo/bKYymaKkz0g9s/Muk5dRGkuOZMKPdK3HXk9gUKDSd\r\ndII4F55wp9Y5tjAj3+ITFFQQSQl0nMtrUzI1b0PmutQL+iw/40bIRzQxTcIn\r\n2FdLctiRs2fEWHInaJDm0x2Jczc7MfKQYj4qt1WDCDeDOZAuF56ViLzJAW9P\r\njLpTLj/o3+0bTf9/UTPGqcLF+g32qIgqMgCRKEhnhYsjYSsosuBcDk2QiKaa\r\nTJ3WxjM76Xb48KnTCwfrEVKPRzxxeCDj0Lo=\r\n=KRAd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.3_1671812510670_0.13069682156664375"},"_hasShrinkwrap":false},"4.1.4":{"name":"@rest-hooks/core","version":"4.1.4","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.5","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"8d55a3e12e62da52f863a9e14bcb52615431ceea","_id":"@rest-hooks/core@4.1.4","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-FL9+yK0Dti7xVGS9WOUQBzpSVrmPVvlnu+l+OpT3Ym+bp4cpvtTWVYrbLKJYpouyAe9xAq67seaDd/cNfmOccA==","shasum":"823ffe9621237b3c3d39dfefd4bcd01d87fd463f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.4.tgz","fileCount":260,"unpackedSize":932630,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmKLwiiAKqelAVdh4av9CMd/Shyhc7qTkxXdjKzvU5kAiEAzbo6+77qWm26HfAoKjx7s0/XIPsNhiwxQDnL9vWGwdI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwLbLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrqiw//Uf1kYCXlj8uoht4FxtmtHQgttcPlmFr8165qJDjUQHIBKYit\r\nA5wgwQPUqYDUss2N00oDvVzZanZ7gSYoQSC16Jrn77gyows+kEStaedSD83H\r\niN5FR0+B0rT0oraPWuzmtwGfAeg2G+OBdkQauNW82afJ+MQd3oDlNKbKkoF3\r\niRwUxysya1zSVeSdtBLDFznv21q7lRsTm1AdZiBmluPohMjZtsvzsWyt50Ia\r\n/fh1p/aGI6dCrJxFTFouQ4lfBZOHtbTqyA4tsNfikOr7DE3hsmC1IIDCXcdq\r\nUyGWW0aiDpLdKXJIsGZlEEzbEG4gHJ/TZQiG0Sz/h063xW5+N4NL9Cl7GPqO\r\nebbz/1z35zms1YN4FIFaO1xDKrwt54zHAg/Oe37I0D+kfhEJ4kK5EZXoZpKn\r\npCoAQ4NT2TYKOel6SPbPIhsKFr9Q4oRfgKqf9aoP2GnchWfRmh68kzRYGhM5\r\nAhRD3aIigZ3IZ1gPmkTzY89h2n5CC66mrj+Aru9/VhJAPpsoGsdcdmWHCZwG\r\n3RovT5/93KOk2XUwOnJJM/3rDdJB4UrL5qrJoPbqCREo0fynl5t2/vmrApN+\r\nHdgqKyIxslm8b3EJagjXBC0EIcVySkAJ10sYOIBdryqVK6Sxl+vzXu2IEDdq\r\nSbG1IezEB22By83R3JIh2ZP+ax3fKKAM0Dw=\r\n=gVt0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.4_1673574091211_0.06609303925562005"},"_hasShrinkwrap":false},"4.1.5":{"name":"@rest-hooks/core","version":"4.1.5","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.6","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"365bf04cc2dcef81a87d4c830c0a6c689eb32044","_id":"@rest-hooks/core@4.1.5","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.13.0/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-CX5uufQkI4bImazp3T4Z3AZV7GDTmLXXRCFEtPrX8b5fsaE21yvToxKCluS8Nh6XRBaxRWwHr33EItQv47WS4Q==","shasum":"47a4c7012a2f9383620f80963f94e1347d53501e","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.5.tgz","fileCount":260,"unpackedSize":932621,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF1sO/4LMlcs2LToV9Q8WtI5x6UriqT4TwG8/adHGy2hAiAUPzD1LWRlPb1CdEmbYUqoPhpNOLXm1q11cFVmaj0aBw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwsTKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxVBAAlt1z/DchgaMIUYmn5dHuxJsMRIgwPhvrgxO/nBwPFYxFuZVy\r\nbBula4TAHib3lyxD/uwoFOH+jWD+sAu3CYAMW9MswY7g5tQqVwmoSFB09E9V\r\nhwVVaIR1fnRN4xeNKxU+POvS1H4W27c7jgnOMJGlB7L63S1Owi5rbXIR0YfV\r\n1CPuAM5WKqSu1xDlXVhO1hagTAcsXncxvJLU4dHGTbEqxZWp5By39zp8obq2\r\nhPxhgA6u5a7gFe+goE1kKgOFJBUut5bg7cdQOSEzG2URNyZmGPoEaLjG6csO\r\nlGQFELqznXtUloo9NfRmxCDQ1LAOtQOsstD7bBlaTHddh/YCeQqHmY21lZ9H\r\nv3JTCK3BexUeJEUEsE3qM+pRkUTieLs0A+hJqkp0ZJmgJvDVixu0VbdvBquf\r\nth4odozyWFvvitFQcXfMHR4sNWvEfjykIVTMCH1JrT6Wnalv9AYkJ1Ap+Z+O\r\ntXOVehHWULDm54EGW53SVpqTaWn82qWZTVnJaBUYp78nHvXd/XFKYoTDsLDm\r\nE/fsGSFNVEpi8HNWYfoAy7ISRcq/ZhlX67v4BImdb4+5aHr5X0Vc4T/M00Ym\r\ngoPJKI9xcHv/epg4twmFgOe+RsEvZ3dZ7dd5GpsTVlP7jvVJejn5QLaYxM9O\r\nCIIDoXSxP/FVDm7Fy8USFKWy1W4ZZNH50Mk=\r\n=j9i1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.5_1673708746084_0.35399071814504035"},"_hasShrinkwrap":false},"4.1.6":{"name":"@rest-hooks/core","version":"4.1.6","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.3.7","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"86c630b4b313679c7a441cc7fa060dfb9005d1da","_id":"@rest-hooks/core@4.1.6","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-drxIzoycG3eHxHp/Hm2CL2z7TgLzUdRqENbpbHUMD7bBa0c+885gNwoiF9Mp1N0n+CCR8RXYH8ptf446SwbseQ==","shasum":"757591c1b63b227db0a8bffb0914b68ea98c8ca4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.1.6.tgz","fileCount":260,"unpackedSize":939847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzy1p0ZmDTeVn7M45Ja+FON6ilKNEJ/JSwpxcJd9Q9uwIhAMIcxnbilzkmx1Kri91r5rJUoJfBNQMcfm0DtnAuZ5Ov"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzqaTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGcg//UnTgE4L8EI/44Vl9XQL02qNzNeaMlZvX5lZmCH0a8FfBfD5O\r\n4GPjD9MWZDbhMUPG++SMY0rW0ucdHfLs3QJVRAgWJ4NuHkxKZaHZy8W1TVZz\r\nVRkLO0eCbQAXJpuZ6gRkegjRS2MfH8j1I4RkFX3P03nw+kr9Jd7AAgI38bvb\r\nYaGGqd12g91a1b9hY/U4WfaUE7Nz5F1hs/6HRDrDqfzIHhznO79KMHgPHHr9\r\nBkHPGXk29ZrCEzR4RRHSMy98Qgje9JtcLefFjjVOfT6o/anZ2XlrTmBYV+9Z\r\nBmVjsrFb596FHWgV74YoPLbBwxpLaGXTw0AfC61xudNlZvYPHC7lXCFXYpq5\r\nP5ZqbKwFYcSlKHFf5ZzzGWRJEHWSTtl5+TKFmVBvMG1eKdFLS2pI9K2JlKHO\r\nLwq+3VFrku6c/c/I8X9qSuEuWg/zqga3czEwlpRykqPu5lGTIvq0+3LEeyJx\r\n/rem86rToCs40voJsl/ylA+CtAIHpwzhpkQhhl5AH+dA3qNfpD9QRHSmUvoh\r\nM5frVaiCYxEhozvn8mHHrgzUAg7uwCdz1q0A3Fx3ZCAT9nyEhAVq+Lu50nkh\r\nN6d9mL+/krHrkQMFPd7wIa9nQwEdKBivKxB6RgwqDWvC+1f8ZkO4yFR44hXO\r\nA8cl2V0t1dHOWEUAn88PFnsNopQTdtglNWE=\r\n=6DjQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.1.6_1674487443539_0.9226529473591485"},"_hasShrinkwrap":false},"4.2.0":{"name":"@rest-hooks/core","version":"4.2.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/coinbase/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/coinbase/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.4.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"8b95633f971eb65723424cf4986b1f5e6325df73","_id":"@rest-hooks/core@4.2.0","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-X7efSjRZg2mCSnVzLNUzVcptPE0W8G38Jdes4+wHaHslXYVN7fVkLEy5Ylt9jiBR2HGSQKwVAoa1u/KuSwgtmg==","shasum":"fa5089b64810c9f94616e8da2b08f299713e0ef1","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.0.tgz","fileCount":284,"unpackedSize":961937,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLDNqMQ6YcLjkl8Wvfa45ATgktNSbTKu/f7LXWJkflrQIgdPUsdMbBenYSl4FyuLNVf7jfrrNVvViwTRanlDUb4WM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1eyBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJ7Q/9F424XJbvvGK4hn3LhtPs5d9gvH/W7Jz0G0KYtgglvVsyu+Gy\r\nX2NyLxyTwI7iEvcvgCqK8/YxPiY36TDUtSvuxJtQfIxDR9w5rbUiIg1MOQ09\r\nvWsnR1UfsDZHvpqqiLspM+mab0TaeT6sgqn3p/XGZ1YDP43uZonVMeD63hSt\r\nEl+Bdl6r6XOjUIhDmAm3bND8pMVGmWD28EqnpcESTipsmLuifJ8Dk3v/guDp\r\nbk14lAv2rZYEilMTcTzDPCPo2NKifBQkoQXEoYTwBnhiJTn1cvuPAhUatwhz\r\nkoKyGEHgTdCyw0cQyt4i9UCG+iNU0nthczcHPjYt8oe+ohPQfqqhdmpYfDVe\r\n+zbB84CBU9XFh9RSSkVwSpCn0RxtTfNVFkHdiQPi+91KnP/vAyIfXejAEGjr\r\nWjqdlXj1lupXECigOqsPnyA2kwO2BSEJtorwok0bm0JdxRF3ptIIjzVJMOzP\r\n5XIpH/zcJbxsrN3BUDyy+GPHibze/1lYP4eQlB2Vb9sGkfAtdBG8inhEh/ig\r\ntsC1POgp80DGviVoYzeSucwdYO3dKI4s9XzSnrSKrNBZcr/t5oy5XThSYHNB\r\nhsJVvrcJJOMlKsJiGftR4AFVOtLwmBotOttusMiFP/cpHiTOZYVW4Ywyezpc\r\nBGxh0bVot/WoPfKJTMYKvS/nsHGdWIVPhKA=\r\n=Qt7x\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.0_1674964097094_0.8727318620471864"},"_hasShrinkwrap":false},"4.2.1":{"name":"@rest-hooks/core","version":"4.2.1","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.4.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"45b40604ea463629e63808964090c4f2a175172c","_id":"@rest-hooks/core@4.2.1","_nodeVersion":"18.12.1","_npmVersion":"lerna/1.14.2/node@v18.12.1+x64 (linux)","dist":{"integrity":"sha512-oNc4v9nzipg9VwkcBWiI/o//YM1xTW5RtWU8RVfw0hX2FKMk7rTqQclfBs1dk92rdfzjzO9EJjBv/Co1F1/mBg==","shasum":"bac272e4311936ce1e5a2c520c4c00428fdaeef0","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.1.tgz","fileCount":284,"unpackedSize":961964,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3dtBOSXM/9ZlgOGZZIjgo7uMvUERRep65jJLwVU3QwAiEA7SmnphIt+vaP69fH/CWH7tb3zewFZaW2KrfpDz1Fckw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2FA0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoL9w/8Ctzcylm9JCRbjm1GJjirDsD2AVoydKKmj0sFWcIutwqxlKhx\r\nB8Hcpr5VhjeBoefMZBS9LmeQcaRgGVW7/445ViaO92fFCaFntXdUytOXZwkK\r\nGUfr9+uKbzzC+EhVhqrDGttM/L9mK3tfG0GTs3GQd38WM29mQhCeImv7HJPx\r\n5FcU7fpl49QNFe6WpfI/WhUOCM6qQbdB4U5NKYlzAt3NK1SiY9aJy+Nj5UYA\r\ncuNeQLEx9pCdtKEklBv+LrLrc9L5aOZQ6v0u99LHpxP3ubGzvWcL7R3HZVuX\r\n2Di6N46ZhVBBGjhPVF8G2QXtpw/vfeGLUwVHr8KVCVHli96fPBWk1H67dSz6\r\nXb3qTlyWr5/vDNUrklDznolztNMT7EcpdgHg+bKk0CxgHuEyrlXPzj/AJPJ0\r\nry3NUXUrNpQTIX/cKqxbhR9/1a1B/+gvieUdtu77avrdl72Zb8c+nvW4rcrE\r\n/CZfk/HdU/k6y+do9qZGvYdrIms1YsVGc2+JdFkuSi9b9Q1kk6PzSytzsmnU\r\n+sNovozPHPHKrs4ADMWqNOQ3xL4XxA7iw3QvhRPL/f8y2ku+MhF/JoIfuXtq\r\nfcUwWsBEZe2BW8YcIyIhGmBh7k3IPUSdXlnzKuQdjtb+80Kgdf6rCmV8Heff\r\n3l7u0ofd33XpYYbNwlDQ7irc9c50FMlXjwo=\r\n=Nzgc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.1_1675120692308_0.10943339134461394"},"_hasShrinkwrap":false},"4.2.2":{"name":"@rest-hooks/core","version":"4.2.2","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.5.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"26fbbe5cf048e85986b06f35f04d1409c24b6a71","_id":"@rest-hooks/core@4.2.2","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-zkuKraLNjFg49U9lGRYbO33cKZs6K+i6nZ8H08qR1yELwQvi6oYpaGa3/4JwK9NQjljiUHXuhtAru+x6hwktgw==","shasum":"89ebb39270900259c17b6b721aa7192cac51798d","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.2.tgz","fileCount":284,"unpackedSize":965760,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPmLLaNXHzgcmLoJl3QAHuVMJtBRrhgaS6PgDV5JQUJwIgfWVXzBkXq6nXN4o24+4GJm8yNEWaFhy0sHndoPPKnlI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj59p+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYfQ//f0yeQ5UKGe1bMwiXwx8zW0dikMHO2MIOMyEtoQkLqLNeC5o2\r\nSmBN+qGbBpIQk9Wq8aG+zrFNfaxoG5oFS0Tr7hXh5JrksiucCpL0TssGm+GJ\r\npoQF3xGMGvpx7bU4jm01O1n2y1AoI91V1F9ERNOendsYwnOmPe2VhZDRwJBb\r\npLmRMnCowYXcEAAlIeunJGFisw6Oq4GX6zC+Ze51VkjZwLYWOptoZl9IG4HY\r\noAhHTTRt6XpXdLCv5brWBne7tczUu6ErWkqK4vNK0eZoLXaVFGQAfNYiPess\r\nBxsqhoDvPYRVkNZFsKRaZH5yEK8GWOlNExQjC247pdqdcp/K7Lp1Bk/UrqEU\r\nzlEnwBGv1uIjqmuNCfUeDF6baTYqzzqaZZk8g4YaKXWW9L9Ow22jOEArbvui\r\nbqMnxsD7PmH1eIRzkVt6ibkgOnXCJKOw091X0z+CFGUcsVjOb4WhOGeOtWI9\r\nlKIcYEjCpF4f/isTvHq4nx5UutTqGIMzQAN+uND5fazF9oQwveROzF3VXzMw\r\nan23CsLEOHIZtwEXFkGiBbe868r1L3a3vGFWtoFTbDZOSoeOzCj9mkXndhD6\r\nrl4bXkQX/wHwFfbO3qePSpESZm3Pnpjm6He6tGaN+Vh66RBmuJuAmDopnQE+\r\nGkfjoSPWtHMfTyTjRiaL9VTUaRM7a0tq200=\r\n=bMbg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.2_1676139133749_0.06314115627834394"},"_hasShrinkwrap":false},"4.2.3":{"name":"@rest-hooks/core","version":"4.2.3","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^9.5.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"8d3be93d44408c4b2b565486df25a30df543f21f","_id":"@rest-hooks/core@4.2.3","_nodeVersion":"18.13.0","_npmVersion":"lerna/1.15.1/node@v18.13.0+x64 (linux)","dist":{"integrity":"sha512-+iiPyF3Rx21NU5tcvCPOzTKsQSM3gohTu3JKa7MDSGllkthIw735bdc2BWCxwB7OnVOr1PRIOH7h6Wa++w5VGw==","shasum":"7a014aa7558a3c4f3fbd25b4952826a16948c12f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.3.tgz","fileCount":284,"unpackedSize":965760,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/pVpqVY804TK5nnVkgOxn6Vgaz25CvMPpqkMwGNUPZAIhANHtd6oHoXSZn4p4r/ggl/7Sth/PbW8ZBibQ/MntNjKf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6vzUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXPA//VlRmojhykXhfO0WeNgT6n2E4BenyQiqtpDlHxJQXuSLVoENO\r\n2cteY+4uHGCmKZkrWqGR/auHP43ijW0U/mGzC23+ETQM22VmCz1PtjuChPzj\r\nEOY+fuaYlL655GEF1aLdvKyBnrtK5r6n1wkR0c/wIA4TMz9hKoq4CTWROlZZ\r\n2Oit1n5l5OKRSEhw7hvlCuWowyr8DA3J02/JYHBRBSYp9rVmi3cLjCHtEof+\r\nXyjH/VZeW6VXO1hYIk0xtC8DDGXGzsV7yd1SQPmQNEDan2GcSoIQcQ2Wekhq\r\nBwjM/nTjhsj99Eilu8OzWk8Wi9Vorh+15WSdIRxbZvsFj8MKn3e/Ve2C5sT7\r\n0PW/NyCkUoFkH7U7hmNGr/bFkH+YMqsF1ZtvrftEswQ5ql7VI8SaexZ48V8e\r\n+hGjuxVt8OW/7R6dm0NWNPmC2ZOVmfXdObarYr0lbL3Scjg0nQ/vf6ZI7HYt\r\nx3pSBCyQSyNY8Ob4ivPy2+mq/Z+lcMULETnKOcKTHLjllgsHZ9S2EBqbNbih\r\nXlhe8TWu4xo4XbmPiOuD7bSk7FnJs0cjU6qcvoanulUPVX4yTSnNUuD66q2+\r\nFJsyrXS9T+motChDaYegL188AR3lv2gp1wzES1wMQ991DnEtcY1Nf8n2F74A\r\nYlJbYR1NUabsiSR9wEfl9WcyoMn3TwintLs=\r\n=odT2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.3_1676344532635_0.314846912970387"},"_hasShrinkwrap":false},"4.2.4":{"name":"@rest-hooks/core","version":"4.2.4","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.20.7","@babel/core":"7.20.12","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"8b0eda4d5e129ba0a02d704a65cdfeb402bafc4f","_id":"@rest-hooks/core@4.2.4","_nodeVersion":"18.14.0","_npmVersion":"lerna/1.15.1/node@v18.14.0+x64 (linux)","dist":{"integrity":"sha512-2u8SpLKeIJ99wte3+Br7Y6oJZLSEby5ygMwVqNCShbLQizUyGNi5o6++tS7/Xnp5GLvybi9sBFl9OfBzTlLseg==","shasum":"7127e59f3f880a62135f7adbf816a90dc204e5a3","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.4.tgz","fileCount":284,"unpackedSize":968013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkWpFecUttN6NYn000sRcDSp4/LgIujpeQJx/38/bh+AiEAp0RmqRGWahsWcv4ZxIBbNhdHSOb4irp/8Doy4JUubjI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9P8aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpp4hAAmyGyhmdoz51KHYlBnpUL4KCERFeML3BFAjLb0U9WPqILPJXU\r\ng0PBfPMLfXzKUrslSRVM0fKxBALOq846v97GPUJC2KXLM18BPcPcaPNXvXSs\r\n+tkJLD8+Swd1f7Tgy4TF9MEGzhkvlP3IPGN54E+chIRirH201lXBQvPPdvw5\r\nVl9Pm+yY6NqP8vp6YYWk0mIYO6K0FWbmSOegSaNHeBqBBh/TMpi4seuVxiPo\r\nbpE9bFuKttyq2nKhcR4arLhGw9t7ooA9chjp1XsdcvNJL5j7o0NzLbPZYE9M\r\nb9kv2zF0ooL7nPiErZMSbrzkkIT1mkK/j9f3RkHknE0EjWS+keUWkO4OTpxM\r\nkmZfdi000m4tIi8pXVtP1fPMHHkwGfH5bhfWPEMRJMAOd9FlRWJJSIvQQXMV\r\nTaAYhYR0Noe6HKuAky+5MIYP3oDQJ7IQPqJPnIxbuvzypjyTJ7JMcGy7ewyi\r\nd808kfbEnIaYcbbChzt4kqnfq1/rsySHkrvijfYui3Fxm+baZ1pmiK4muVIi\r\n0Fi7jmO/XgtnVJOuVa1qyWMiPBNjpkIPdrPbS/NgtB6Y/m/Z9P5JRy/NKJR9\r\nWXwn4eboBZcBtXkPx6gf2gr5MHIVogSoA9HPE/BSbUXaqBKGmNEQVlB4rigb\r\nnoBAlUzdlZdN9WDqf4S+vhHMrOthnFRU0Uw=\r\n=3qCL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.4_1677000474048_0.9993078866493992"},"_hasShrinkwrap":false},"4.2.5":{"name":"@rest-hooks/core","version":"4.2.5","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"80c7f846fbd77c58b61ba92941dc0514e266f9a9","_id":"@rest-hooks/core@4.2.5","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.15.1/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-PG9DG0nN3X0yMC802qFt6ppbOV0GJIpgRZgVy8yGdbb9Dn6yaVdK17yBFGWnCC5tsw+zRYBORnrX4R5sEEXz1g==","shasum":"7d37b52bfbcaef6333ac975c349aef67ec9a0a92","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.5.tgz","fileCount":284,"unpackedSize":980532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHt2Bck9qoe4PKv6ZfxYzFJ9orPdRnIU8vV8R9JDDbE+AiAn3OJ90z8T09s/z9NcXfuvNXTp8PCXOwjlDeWzZ5+KVw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAMUdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0OQ/+P2pYOsfkZeRnhNdnZCWp+huMVK6TKC7pxq11cBZUWaJYfaDQ\r\nuIi9P7svUGoo7xfLUSE9rRNXJQOX8FllESbc/cy9TLnKGvarp71VccxJ6z1r\r\ni8o9vpM0/uvbakBWPzpz+vd1XaCo9VN7VsCgFjFJHk4BpVlxcgd2hWY+KJsj\r\nOvJRJwrK561mvQT/0tuoEq3R0lcnPltxVSe1UJW/uBOqrtITN81hve97JrIX\r\nAsklNcnBYqnA3nEPwhB8udFFZdQ7/Qd8RJ9hCy0ivFF8LBYNcBuyie2YRmvK\r\nNFLS/MKIWXlbZpH5neq2fLUmi5P9o5L1Wvw40hupoj8ok9ePYx+p1deSc9cf\r\nrA8S0DKB9NPHl9ZEu8gpwf91FLUT5HxwDVweliM1DR4RDfPI4LRz0qL0DJPP\r\nVku/jPcenOrxBDDLgOuUyHD4/barmBag6hGpwNnKx29IZEtQFdBHLu2AoPZF\r\numu33NX6EAN0xkAtqnkB9TvNQ4PX44LNwZgsFi9PQroDU3RZzG6gzXyI4FY0\r\n7qG60I4xq9djcBRh3VlIPxdilZ7LG1s2SKBCwdJu66pYCoFr6ZAtXCOnF+cv\r\nRJaRp/LpG4/v1jU2s9Y3vOVBDuwJKhy8e3gg4C+l2qyXDye1VkPo5Dbvzihr\r\n8aLSuhgNY5PdQmneLOsjXZKVrgDIhEMcOhk=\r\n=CQp9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.5_1677772061595_0.25182885698907387"},"_hasShrinkwrap":false},"4.2.6":{"name":"@rest-hooks/core","version":"4.2.6","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.0","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"922ed06e929151f59b51161629e220824da0b080","_id":"@rest-hooks/core@4.2.6","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.16.0/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-eOrmCWmc97w3oWvut4cGE2NLtWT4sW83F75TI6YEnI9fAea/o+O9sKlA8ZFcd9rtcSBjOpTmsA5wXxtpNdIg/A==","shasum":"7b4babd1f602555d0965f20ba555cc31d800c2b3","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.6.tgz","fileCount":290,"unpackedSize":1033352,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHo8rA6LDlBxo6kwOE2vqTb5pa3gie2fgSfD8xnMlJ7FAiAUsSXsAutAomuJ3Y8rQiOr2+UZo/Wnqg5mt3ck+/YxHQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDWa+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1cw//au/oRP1pbTicTILze2ZkH6iICivxHjkPH3n3Khj3XfbKvBpU\r\nzBoXb2eSw0kb6PayCEzlaS1H7lTVVDk7HR16ZTukdc5ZLyxppCKMy7/BQzbW\r\nUjU+Dujqun3m2Y2Ud7sQ+ob2PtY/xAcH+7/sawLZ6lpJEKK10zFKDsiPFi3C\r\nmIlhu75uyqFvcssfOUHV+xS5tSi0LV+hZKy9PSMtM5qiztImN4MSaRH526ot\r\n33v38f/CcOMEuQVVkU9e/+agAFL2svMOXm6PkcWU9T5Xjnc81Xc3CpGjMwi2\r\nbnh9nqw1aHcR58IPJxmJ1HCtbFoonh/Ci7oZQH8PVXGakBjEnZlT2JBdaS+Z\r\nqERyTeHxkCjHUlEQu8vEnXg4oi0ZR6id00guwR8QMkVSzWRJ+EG82zeFKTUW\r\nO6GaE4rBa5MP+c3GjmK3ebCl8/rSQGyHkg+W3LQzg7dRsDnnjWsVofra3B8p\r\n4RAmJKupuMzo4sdvYzShhI5AVPBCT7VzHJD7yP832ZH138prnTV/obKRuNWO\r\nBHnBfKG0YqFCGFBY3amu3FLQOtVXoKlgZRIo2qFNgU632Kx2CEG2YiAVKVB6\r\nuxKKT/ig+w1BXoMrWdlMVIxdKpM3R0B7pJAg8vQLVnp3TozxkUeqr4MUHFJF\r\nK+0an3HdBKsNJfOksPZnbeQXyitUxnE28mM=\r\n=2Ld6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.6_1678599870085_0.9227402932023676"},"_hasShrinkwrap":false},"4.2.7":{"name":"@rest-hooks/core","version":"4.2.7","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.2","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"a1c7373956f3fd885390e13840553c920da4a62f","_id":"@rest-hooks/core@4.2.7","_nodeVersion":"18.14.2","_npmVersion":"lerna/1.16.2/node@v18.14.2+x64 (linux)","dist":{"integrity":"sha512-TKyTpdvjJg/6ojGh1zWl4pMtW7szgGYewX+iP3wQLWyiuxS4X///3U7ympIb5ty9wJHPSabjZ//IFpbboUijaA==","shasum":"3f4bbdaf7f4ab090060f983aabd5b4ba2af73eb4","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.7.tgz","fileCount":290,"unpackedSize":1033063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZmJhZpFGvShewh1aP/GMUriEA0VSZkAsd2kQgtgCJ7AiEAllBrCkbmSB3Ci5HbwebMgYAvtnxln+bTMd6UeAwknt8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEiVfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyihAAnvj8puAY9X6fDOWLzMLzU9p1T978Y0QG3w5/X/OunPHuqBAq\r\nSbPeNqdUdlZxEknVqHvLXOsYpIQA2JtU5X5Fk0S1VqMIB7PhUDFgBrGAPZa8\r\npvL/up74Cd8n9laFluwaSs7KmRijAsf/FMNsxnG+caadShdnGeh89t+EJEEq\r\nWRB91mD35ZNOrLYXoj7fbSKHNM6JujZ/lN+mRwMEP+umCYrqntOGmy/GjKvM\r\n7Wy81SsexEI44lxFMcpVj5tgBHwtqc/7hVnmB1NAcFuZKgbGgwvMfgUKXtW8\r\n/Yc/jELmIAuahiDHlhjlVEJrF/YFV7fKdxkaVsqWiUj/qBCOqsfnXTZBXBiO\r\nM8XoTWA0qlczTZIIDy6NBfcxDcCfJFD/4X8WnB5h5iiRvKN/Pp6v37hNLld+\r\n4bSn6zeVx0C6Ir1tzTtDAw3V+0U4RMDmzSP1zCS1aUCB1QIQsDzehDOWT+01\r\nv6Vh4IVD/cnp3NGR3BOQQR64OkX/yTovEpLhBkYq2Aim0Wt3uWQ2QDCElyEL\r\nMv66+YkMX9UiXtpX2yYEsyni1TYtCyz+b9BpOWq4ofXOWDzQGu/mVhfH/uMw\r\nhvDDLFERUSvyGFc60KrSTJb6fk2TMMCG1WT+OgeZ2qFa7m+a+wPWPKmSzDdY\r\nuSx883oewb3EzYmdW0ux/UvXflblMHaCVDQ=\r\n=jgzk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.7_1678910815619_0.43675579494648065"},"_hasShrinkwrap":false},"4.2.8":{"name":"@rest-hooks/core","version":"4.2.8","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"c0248d68395248454f494f4cb8203ed7a5cdd94a","_id":"@rest-hooks/core@4.2.8","_nodeVersion":"18.15.0","_npmVersion":"lerna/1.17.0/node@v18.15.0+x64 (linux)","dist":{"integrity":"sha512-AU5+hOT0m5d+jOTn/CojAYCn6Q+wPCOE9xKJRZbdznqhDSZa1RZLMhUqcK60350+BCMKDe/ixSJDXigWFIEf1A==","shasum":"925c17a1be502479018e755af6720e55bd2765db","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.8.tgz","fileCount":290,"unpackedSize":1036070,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAa36p9wMCX4KYp9SAhkuA9zws3uVNaQZ5vrio0YMpgJAiA1QvvpxJ9Og+PRK2B6US8eAah9XfLFoGYIbFT35n/OSw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkF1s3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQhA//Z0nSqoTYlB3SLjSjjtEFlO6f5mNJuvk7wgdH2T6aluJsB6lx\r\nF1jxOJeFbrAoW7vm+jexhNzswQJRU8XzmoZN/b8FEAA17cDF3mhZgyGG0Nrc\r\nHpU8MEAmaM93/XqmFE0wnF6USUU3K4AphXaN8j/pc4moLL0Dnkag+lo+PfXt\r\nls1vJHkDNyJYISsbwpu/ENKnjSWZCbQtOBhoknUhPb6HYbVX18zhsaUBXt6s\r\nTDibx27WXtTguzH4r+q0cFn8kihU9pmVkrOcuwDszcYrJiUatznxKGWMv1+9\r\nGtZwcudpJEJWJG+ljj+7vVULVqb7LASyDAjECbjMtUDVurvjLlHRFiDz0KnV\r\nLHj9TP+UlpOSMPY2R8/QyUzJScAHhbt956eOfJX+ySrTZtwwPf1OB5KBsYGt\r\nmlz3NcJ8fIV3+HWk2spbciyhSimsKEEpx91oViEBhYsV+qhTDQC810ZSD6Xw\r\nXTj+NYYypRHeDKNBmAXoi+NdeADdibocY6E76YhRPGlL8mRZDOUk4FlNVS2Y\r\n+J5DLX5uDm1miRF5/fnNmwD+0T8/xVkpImA9E3TrqtmAbQT+EDNUJz7sPEUj\r\ns+NkzX3/yTe1sJIGmq6egodo/x3J5S8t2Rj9yPY4D2thNon328pc2guQ5yy+\r\nrKMJzu/3uA8p0t3B6rmI7C5YtkJ5R82tV9k=\r\n=ZcXD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.8_1679252278807_0.6105583736496427"},"_hasShrinkwrap":false},"4.2.9":{"name":"@rest-hooks/core","version":"4.2.9","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' babel --root-mode upward src --out-dir lib --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' babel --root-mode upward src --out-dir legacy --extensions '.ts,.tsx,.js,.jsx' --ignore '**/__tests__/**' --ignore '**/*.d.ts'","build:js:node":"BROWSERSLIST_ENV=node12 rollup -c","build:js:browser":"BROWSERSLIST_ENV=legacy rollup -c","build:bundle":"run-s build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"rimraf lib ts3.4 legacy dist *.tsbuildinfo ./index.d.ts","build:legacy-types":"yarn run downlevel-dts lib ts3.4","build":"yarn run build:lib && yarn run build:legacy:lib && yarn run build:bundle","dev":"yarn run build:lib -w","prepare":"yarn run build:lib","prepack":"yarn prepare","prepublishOnly":"yarn run build:bundle && yarn run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@babel/cli":"7.21.0","@babel/core":"7.21.3","@types/babel__core":"^7","downlevel-dts":"^0.10.0","npm-run-all":"^4.1.5","rollup":"2.79.1","rollup-plugin-babel":"^4.4.0","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-dts":"^5.0.0","rollup-plugin-filesize":"^9.1.2","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-terser":"^7.0.2"},"gitHead":"37f056da08be038bc1c6ffabcbad140cd42c6346","_id":"@rest-hooks/core@4.2.9","_nodeVersion":"18.15.0","_npmVersion":"lerna/1.17.0/node@v18.15.0+x64 (linux)","dist":{"integrity":"sha512-GldE9/cldWFYlYVSbUux/UJm7o3L/FpQPpqARH64A2ER2BD0sphhu9uNO7jMb1FtTAJHmT4JdFQ47nkof2RuKw==","shasum":"b6dc16d59f60bf0b6e76f39a241fdb8af47e7ede","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.9.tgz","fileCount":290,"unpackedSize":1036267,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNS+ixvykU0/VL6VvvXVmpFIRSfXRV+k1DGiuCG3gpyAiEAuui2JW1IKUDDD+LV6FiPkbsbQvPh7Uuq+VQJWh1J+wM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGhE2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoo5hAAifp77qMWw9AlkHALqbHaZSsLMmxawM3239cD76QYgPlIiTmQ\r\nTDSjneJbwayybrJubip/noDu8SBsWmhE+SB+NJt+hEdUE7rhAVaXAEv6GmXt\r\nQO1AxXlj7e4dwhVtNBVgseLsEIffT+cHMekG58KKlzrwnB67/Dyp9Jvw4w3M\r\ny/cfl2b1tEE2rTPGHmfhFTxl4qJrkPgsHx4JsN1MLhV84bYEKBEDhr4j7Ti7\r\nlslyaRPt8S9gKlDdBWkMdNRKUHwiBaVdX/D0vlocTDUSAWrwZiNJZTY7m50V\r\ncMhLKg5ZenR4n7wI3y0jsP5+61wang4e99TVEdLHrFt8cI4+j9r/PK6WTFpe\r\nsDcDORn4Mrzt+9yBjNQFFmQaZiCKK57Yckw+TxtvZQAPnPAleqFIpIys3jH/\r\nwwKrl2o4HA883ZnDUZ2+EIHqfeDBr+b0hAVj1Kl70Ff1l+2u6dREuS9n2szS\r\nUH+rP1QSLGhfzbBXYHFDwyVy98JlCrT7d7Xzvl1L2Lfh+MvOJprWIj8XfLis\r\nvaTJgsEYsxY0mR5IL/fH1l9oeAOEJeK8UmYgshp9ZD2xx+O7x1WDu5WECIdw\r\nqArD24SivsCkNA01DWX78l/wIPkD532rs/6jzR67ZTR4MQAh+WWUVVcKqJvm\r\nzzuds5Ws0zgZinjD2aEbMWH2CmNMAVBgYyA=\r\n=IbiI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.9_1679429942061_0.9472588567194191"},"_hasShrinkwrap":false},"4.2.10":{"name":"@rest-hooks/core","version":"4.2.10","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@types/node":"^18.15.10"},"gitHead":"8ae8ff0591ef0cf6334e0c7b71d101b5895b0188","_id":"@rest-hooks/core@4.2.10","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-RV5L2SL0IN6DRuo/mzLJXbcA43vrI0VMMNgxy5XBlNNvRrU/BogdF37zAXyYdcJc2EDiP9IfAE3CwcQOdnR/0w==","shasum":"62b4759d904083762b7d11df81333f8c9275774a","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.10.tgz","fileCount":290,"unpackedSize":1035622,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvw2OCWHZgrS0SlMKh+X8ocjvkgLoItieflCK3hmNWigIgZRjDwMEAPQc198dZcEmgtu17yYfpDwXfmuCBwzH2rBA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkI2/eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrmvw/+J7B9RlDlr0dOGr5f07XFcJCUq0kzNFNHA/fpSQMxG9/LN0aU\r\nwtBEihSQk/ylfprFiWY2M5+x6iEUX4f82cNwgdZUEp0SLuYe5G6vuRozVYgM\r\nWjqdacFKKP67UVEkWqs74W0QLR+qbi9IjIWK2rLLvjp3knMC0CIPpTIpwm+Z\r\npjEVExndCzFKoTw6MMBQE1I3hbbgh4FjlzPuGdxeiM93BUnzCXUEpkS77q+u\r\n87lQ/TPxBmSlyJvsoKguk6wwCSkRe+rku4eVblGDSIRH9dXLXaHcMSW89r/X\r\njdf8mLhqnjuo2H+6j91W+ClqBr0FAViCDCZqd1MHVQTkVAK0Laeme4g8oiHL\r\ntPAxPRAiQEBQS5MBc+d0NGqGt9poUJcRSG6Db9YtNQie7OrkkKC6zBDWDPL/\r\nW0/qsi934CtT7kTgMN4vor9Z92jCeoFBTgB8v04wKDAgQ71+DWrICGHQUxoH\r\n7i+8OJK4sHuyNSJT6ra7qBOB510wptjRtyzlsBJI37K06mnqTZn0atKVp0sY\r\nyRnlT+EmGocalgMT7JHitC743XkY913EGs8QXMThflr1lFxnfUK5ShB1aNIm\r\nVr8uONGYB0idM4KgmxFsCztT6NndqffEn+5W+0t9u5t6+PIvYjKwd7w3BJv2\r\nzmlHPv5r8CrDjC+mFuxLmQDlmg92UuSEnEY=\r\n=rJOD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.10_1680043998405_0.589174027475116"},"_hasShrinkwrap":false},"4.2.11":{"name":"@rest-hooks/core","version":"4.2.11","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"379e24839190cde5893fd55504975e0c481b6a0f","_id":"@rest-hooks/core@4.2.11","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-zX4blUG6xFtEChskP9IaDost+y7KsDR6ynNRPhtF+Ku8F1rHT7JhJMQk2tRalLTVY6VMMSBf8HHEvStq1uA/Ow==","shasum":"f30d226941e318319940c66031482bbcb22043d9","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.2.11.tgz","fileCount":290,"unpackedSize":1040622,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAiDIkyAEki5mVc8F5c6TK0wYWVAwo/v5Y2UDs006EgPAiEAmGHSvbo2TosMjh8DNkD7Vil4GbnCgsGl95nBh9Lrk9Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJOXBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroIhAAkq77LH9EiKLMo/FmejdNUYEL8KDuyD1Wv6s7Db9vPkZUJe1D\r\nr0w3dPqHcnxblbMK/0lo9zqvkMYwQAdiNS2WwT97Y7+Z4IrKs5PFs5J1Ei8A\r\nmmgwDETxGgKBoZrrZmg2A4Jk0Lik8mm6MYaibLtd8XEGvufwuBcQ9FkkTosa\r\nmtq8T5bp7PPnfkFJorjLnbzJMP9ifoIPC/4ZqvNn+OXq0D1em8S4b8Tz3rvP\r\n40OlAWRJeh85JoAe3o8ODaGPc5fI2zjYD6PJUsLDFP7TCLDhPefAniNGk4T3\r\noTj6oMz4WWHgQLuOaI046rw1HkAzlQN7S4ByKR82Po7C8jbBqh5BQzkg/H3y\r\nNFoQJlqSZDai/cyOXziYMXr1WcNA3zXot+mQI+Q9it5Qm2qyqZvm+iBhSil9\r\nojR9vJ9MPEthQjSUwYG0BcHHO4vjUguZmJ6QTXSpkAfFLWqh8FVAPoRJgzFh\r\nv/4dHRhsRJeVUvS1thAbMKi0MKpIFwNdcAMv6psGOM12dxZfxi4D+AOstZQb\r\nPHGh4bac+0/01eajZ7YLRfjfsVrEeGuXsaFSOEaND+WJWyMOUY8jDS+2d29J\r\neHLEiIGssK1zBIoNpcfc6j0ccSIN0QOGgW/1B/DeknFdeMqkEuC2iLvSSkMo\r\n3iV2qoD5G4ZFKRg20B83sTA3KXCWBi5UhZw=\r\n=qz+X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.2.11_1680139713150_0.2830246102124425"},"_hasShrinkwrap":false},"4.3.0":{"name":"@rest-hooks/core","version":"4.3.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"5eb3a564700ad3d0be6c0d1cacac5e9469fce6a4","_id":"@rest-hooks/core@4.3.0","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-JIL/ckIncc0YIjsrjau8Gke1uisFH9Pc5Fz1IA8HDBP4bgwngjxPT9T0gpMa/68izv+de1VzfUpiHJT4buTjXg==","shasum":"172c3650d22cf9b871338176614f3fd286b51305","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.3.0.tgz","fileCount":309,"unpackedSize":1074543,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaSn+bvPUvRJsqxUxzUCguGd2nNzZ9QYJKVkD9tlc5NQIhAJfDZ13gAbUwgqS8cv0Peop2zZsS5plPKxKwH0xij+sK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJhjLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Eg/+MbEatM8JlIuRWS/3dtYFFzfpv8SPZ/vTrbF9iSxDGh7r7YKX\r\nVdE1l3TEWAKjGKB2QnThKjs3LxCLmlg5rlziNvT+XJ6kkK7GvEqWjHyBJiQV\r\n7JZyxiV1lIMsK2sOaekXFX005eCQ1bgOjaJXr9nLuJbJiU/8QHp9stQZWhL1\r\nbVarUFn8bMheXXMVqegmQSPSPv+ku6EhlEscnmNlu8PRJBIMjNh7Hhyj6v0R\r\nDa/c7zyJ3ELKIzSjUfzqtaoSPTI64tTLIYfBK+LZhj9XFqHhNJ7tFN8X4A2s\r\njoCTruPlOQJOSUHyUcdwHeeeQ6hbHqCBRTFA8dUs48YHJzBuxqJPQTIZU7Uc\r\n8bB/4F8Uya+dAKqZcud2wxTp2AFMjxgmVdAmjLPOj6q4GhaC/5Y0DUXwnL+D\r\nhPyY5W0FXHviXSevhLrhNnYj2eIVEDaD+IZfYBxG0Aoi7r6LZyIiGpMtV43v\r\nFryNUV4jb8Paixasq26LocZfwkm42Bvza7p6tP4i04bzDGwXOGFBmjsw+MyG\r\n+KpIeiApdxgNFVUEtgY1rzTz3bYMSM9IVGhxShI7+cG/yOKL7ChgiacFYMQj\r\n1lcrTD45/AimXcY4hQY0kUUW3sHknx7ECLeLFXC2ZoB43aLJN8hJ2p6T3uZG\r\nNq3djpc/BjGEr5uxjuHfAmcvrTcQzTdB1Co=\r\n=0KNZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.3.0_1680218315122_0.4057659929348474"},"_hasShrinkwrap":false},"4.3.1":{"name":"@rest-hooks/core","version":"4.3.1","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.0.3","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"220e5caef02c8e28dd6f7643e14531c3ad0ab86b","_id":"@rest-hooks/core@4.3.1","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-jSEubNZs2GHapJgi6A0FW9orwEJsZNTl9du58EJ+vBJH+SCn5J8tmKZj8uBpMk5x2Ikaqrjd1a+vwrqgF1hUnQ==","shasum":"6665f56cd627b685d49e348f0f87b176136224a5","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.3.1.tgz","fileCount":309,"unpackedSize":1074815,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDHD4FGGIWH/r1qZkwfnrQ9yDC8eH9/abtFxqXShm8gFAiAlSoVWu0E1xlmeVD62JijTWsa1xhkH4E1J0wB+pQONPA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJkrEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrAw//Xxbg4eykmjp6MOHN4KHc8dzVZU5B67n9qW34bUQz5kOk0VUI\r\nYMZj7NRZ2K7gsP7l7dxmnEFlLwK06gH1oLcOuaIgIsgNUnl+I24Sn+HASRtu\r\n4nbeTPeXUDnD/EzpYddhwr9qQ7csxIE3DwTs4yuAKNyPMnI+VLK7UXCXUAbh\r\ni19ms5gujQnBH+fihvkS0apHOeNtn7f4OYjJPeGW9pGEAGsUS51c8TomO5/9\r\nHtRJ6lJyR01z+1y2X1wjQJ1iArMptu+W1qJMQDQDXjXgT1/jaiOoKCiW4PJZ\r\nRw1WX6leg4tQckjYHXgtKpSMyqhsL3tVTS+7P6VVe2iZjvQ06B8yuSGS6lkD\r\nkVoPo06sCZYNcOJvjV4O6F8WEvQQFvKsx8oHs7BZdytVkuht2bnXUYIaP9m5\r\n1MYt5bmtHYyxJD0UEmAACM7QsIR+kdpfkYpWEwxxJQFWIy+swenlEbbq1UbI\r\nLfWFilGCoHmjOCo4wek78VY5VmcW/Uybjb+y+zFooaTCLY9khfEFUhSkhYgQ\r\n3R2JzmXRhP4Bvs4Cyv7JXcpatKzpLXO4x/eZckXz7SWQUy7L3By8klKk37C+\r\nXNBgroMeItbaDD1QDm34ZB+5UgMvJvmZ6Kl6PMwQph6uhaDxAVA2nIjeguVa\r\nBQd7ZmoENVG233vtxlu5SWRIZsDqNCyw9K0=\r\n=apvi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.3.1_1680231108145_0.7625193770237577"},"_hasShrinkwrap":false},"4.3.2":{"name":"@rest-hooks/core","version":"4.3.2","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^10.1.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"48ba88e0d66def4d2fbf600cb96708e3212313b8","_id":"@rest-hooks/core@4.3.2","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-5C44xOFpvgPbq2a1g/LPeXWMnhDDwGx9095sYD61rFj5dbzKTNDmHb9jSgnoiWIyYRYuA1Pbn8tAQiSoa5++aw==","shasum":"cebe900039bffef3ea54e4ca8d1625e5abb0f378","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.3.2.tgz","fileCount":309,"unpackedSize":1074913,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDw4pgZYpwXQATNk662URXn44lFCBqVGBRXNcZvZ8Wn1QIhAIoMDAGXx/uPNKaKb03jap9UYQva7UTufyLs57gifKv9"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK60UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmps1A/+PSFRlhQcmjSGosDtV4CzPKS/L7T1v4IhLuvgSoNTNt+uWQXM\r\nEmfrZ17y58jNNSJy2bfYsdZrd4XcyJuBKrSUSR8/ftylpqxXuhYM0/TSaG30\r\n88KIPeZo1JUT1y2sHIO8E3lEmV0rmuRscfm3GPfSEkaYW2rwc88SXTAAgA/E\r\nIUNvN+QYC4qzhvujiZLutgK/cVgm7YXJXC/geTIrzcG08U9Dff6U/N2mqpkQ\r\nuKI+6WXPM+1zvJit16KExTJkQcTpSr3qjyfH9g+cO0EtWwM3ykpvp7tQGNUh\r\n7xUk/lBtQSenXQjSFBdYxtHvU+aB6DKpS5FQFstxK6yjM7CnwJQ9h0n+DNkv\r\nAUJeLDO6HD6ZKJ/emWbmKmKHT1HQX2bC1+TZ+l7qHJSLU/M9btuKysxJJwdk\r\n6VkUWiJS0TASXiffPDEdBf11gnvzXXVRRrDfe4Kz9JYTI7IbUct9SMvxqfx1\r\nZ/OU1ZxLfviowmXpuAOQL6gsosQGuXVRT4w94isIz82uUB1OstQBTv3BNYoP\r\ndIeQO+nmqiddlUqSfJdz7Ra2WDgJQnd1Hc3uvMnSGAnT4Lc7u/wePg1Vuv0y\r\nXzktkMfAMhIMy4FmJ7w5axZ7GEKxlOZD2mN5vEmLU1zP0gDWWxX6HhPpHDER\r\nCukUZGOetJ8l4PZWByY2OQikF9egteP5tVE=\r\n=uw5u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.3.2_1680583956383_0.8816625221088086"},"_hasShrinkwrap":false},"4.4.0-next.0":{"name":"@rest-hooks/core","version":"4.4.0-next.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^11.0.0-next.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/data-client/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/data-client/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/data-client/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/data-client/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nReducer/flux normalized, framework-agnostic data store. Includes managers/middleware, global referential equality guarantees,\nautomatic expiry policies, data normalization. Consumes [TypeScript Standard Endpoints](https://www.npmjs.com/package/@rest-hooks/endpoint)\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/data-client/rest-hooks/tree/master/examples/todo-app?file=src%2Fpages%2FHome%2FTodoList.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/data-client/rest-hooks/tree/master/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Framework Implementations\n\n- [React](https://www.npmjs.com/package/@rest-hooks/react)\n- [React-Redux](https://www.npmjs.com/package/@rest-hooks/redux)\n\n### Sample React Hook suspense implementation\n\n```typescript\nfunction useSuspense(endpoint, ...args)\n  const state = useCacheState();\n  const controller = useController();\n\n  const key = args[0] !== null ? endpoint.key(...args) : '';\n  const cacheResults = key && state.results[key];\n  const meta = state.meta[key];\n\n  // Compute denormalized value\n  const { data, expiryStatus, expiresAt } = useMemo(() => {\n    return controller.getResponse(endpoint, ...args, state);\n  }, [\n    cacheResults,\n    state.indexes,\n    state.entities,\n    state.entityMeta,\n    meta,\n    key,\n  ]);\n\n  const error = controller.getError(endpoint, ...args, state);\n\n  // If we are hard invalid we must fetch regardless of triggering or staleness\n  const forceFetch = expiryStatus === ExpiryStatus.Invalid;\n\n  const maybePromise = useMemo(() => {\n    // null params mean don't do anything\n    if ((Date.now() <= expiresAt && !forceFetch) || !key) return;\n\n    return controller.fetch(endpoint, ...args);\n    // we need to check against serialized params, since params can change frequently\n  }, [expiresAt, controller, key, forceFetch, state.lastReset]);\n\n  // fully \"valid\" data will not suspend even if it is not fresh\n  if (expiryStatus !== ExpiryStatus.Valid && maybePromise) {\n    throw maybePromise;\n  }\n\n  if (error) throw error;\n\n  return data;\n}\n```\n","readmeFilename":"README.md","gitHead":"cd8413fd37f52b6c6f56ed20b0e1886c88ec1cb1","_id":"@rest-hooks/core@4.4.0-next.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-AugTx/WxOI5VEO9Kl0pbx1i511eKoctDXs0uUqO1R8PrQEj4yxe0G3KU82BQqm4P2HVxUiCBW13sLutyCmotyg==","shasum":"aaa111d48b2515f4514b2acb0300c785a21e544b","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.4.0-next.0.tgz","fileCount":309,"unpackedSize":1078661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFB2aE8vZ3+DAQvi7k+zud3nlEHqonSGwgAlA6CI9CczAiB06Z2yu8g4ucP54YELzVdJCz8CEghV+jd1+HWnOBb+qg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSZ5DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr87Q/+M/cZkQTE3FNmDR/KK+MLgB3cRcPNwmpkL9WcZJJWTZzuI5aC\r\nhF6ZTdTQkLNTLpn2llhZHYb0NITTYoplY4SbeC2XZNuvzlb6tkscvN5/aNPt\r\nl73RLqyx/S635ay9ySZJTi0wbup1uWOAtij8bjhfEBF36E5dT3H4rGUBUbJT\r\nBpvX+0s9ylD57EYVKla3bhpb1aWBmCw7woswJJEL1R1V9U4ej5yCWPcf3U+T\r\nvSS4+QzoIn7hwgNe33xnTPjNN114KGzSmkFluqanov0DqPgLoZGUgLzw8gVr\r\n46URciTbeQBx7F9ud/duqOkx9RqE2akC9e8K9LbUVoRvxb8t7cJ19V0U4Ox6\r\n6tthSvOuEQ1xq6nEZ1wnWYDrU4XfIAyXfxexDPEIEDjlnicJfBJ5Dqz5PgTi\r\nxNwNyT0+2TCPVwHn/xqFD4xdgt5pkRcP4bCbwK1no+fLd+tOS+b0nJaf9NV8\r\nfux0+CvM/rvKGVNuUInTjy25+/V5j7cS7983Hk/e2cfJhGXdbcCO9P2O7+sa\r\nEoesHUvtgP6WP46Y4gZeifVKemc6wpgTXxvlmKgSTPl/uJj7jTn9geMR53br\r\nTtW/X0rRySReU+q5BodTg9IPRwjVfKj8RGs2IUEOrSMGebpZqxEWpZPE5RS2\r\n3CsZLk7qA9O0rfI5IE5iZIZCgHrAbZWAhRw=\r\n=yC7p\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.4.0-next.0_1682546242829_0.05667822229691599"},"_hasShrinkwrap":false},"4.4.0":{"name":"@rest-hooks/core","version":"4.4.0","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^11.0.0","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"4dbfdb78611421d8afc62d4a2f714c462adff40c","_id":"@rest-hooks/core@4.4.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-wEf1yOZiy7H+sL2Mobek7kudUbDXosUIxxM/Y/jinhb9GCEoMCqFyL+m7uh59V6txHxNrMsvhd96DyabVtME7Q==","shasum":"e1744f9cbc3de04ad635b04b4827261a9edd981f","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.4.0.tgz","fileCount":309,"unpackedSize":1079351,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAE5Q3RkHmPCgo61olUJvwjtq+AohMrEwA1snla6yKoGAiEA0WlRxEigsvdWFT4qQ2vQhzjCA2Ds4NiksCo84+2LSa0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUZFjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwJw/+MMqcter/3BYwMD8OIOUESj9b75Trw3mR0peWgBcPn+l5vQIW\r\ncIOfiPIAevO3W2hhQ/a9RJbdW2rRbsYE23IzpqN+7xgdFCHJzuNo1gDpfhGA\r\nwi5SbMLDu3X5QuuFM0ZpnEiUk6gDADNwk52Luk+2235xHNtlupyIVU8lGcI8\r\nEiDbvTA3mmG/3E2uwTYk7sRvBZqdmolWpcAUioEk8ZUSbJcP+yJufq4KDpdm\r\noYRkw1bYJaqZ8OmWQLxA7p5PTzXxLCwedBYm9f36GowzcIgCSCqQ7x8vZYWr\r\nxbvESbr83FOH3MucxySSfNv7cldpxO7jKI9Gb3H1axDDOaUIgNYCML8baMEo\r\nlm7A/mXkuLYfRyTRonhLoZ9abPsz3SLortjnseMZcCjkzmRa3akLSJm/ylRw\r\nm/5soS6996o2M6PmQ7zv8Sa2xi5myV2ETPIMqKTLoAEMZWf3aI8CFEnxVuZB\r\nkXAG0yCQivZ70WbFXMYjr7i39xEU4Qxt3enroT9qdmWrbzRw7NwkGW2UmjO0\r\nmahZeduo6YgB01O5rNLRg2jwVd3mpwDq/o899WxGm4qWAzE1M31lfoSXMCVX\r\nqli0GWg1XIAJ3ko+ZnXOeMC8CVKlkjMZL9TzhIxM51Ou3Teaym5lpzhmghuP\r\nzd0S7hPWbKTQG8+hvDeQDzW+g6OPGAYPepc=\r\n=cNJF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.4.0_1683067234869_0.05275136022697802"},"_hasShrinkwrap":false},"4.4.1":{"name":"@rest-hooks/core","version":"4.4.1","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^11.0.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^18.15.10"},"gitHead":"f6c59c0f805dfc982fccf1cc32ede64a70aae63d","_id":"@rest-hooks/core@4.4.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-NyGxpEq6gX4rBrEo5kNSNsLKPu5IXAD3kPaG8nV90S5Sjx4FLKSgXNDMn7se9h8nETkjfULJ7XeRcXUSTbVsqg==","shasum":"e3ec990efddebc57d1c06da76eddbd4089ba4766","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.4.1.tgz","fileCount":309,"unpackedSize":1079351,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRLgTA0Dxe1pX/ZmGlgm6g6CLmMUWSTr2tzckDSV8wtAiEAtIXgpFOAHpKzDNmnZh+67hdSCUsLRTHCjA3iPSWN2Ss="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUsG/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Nw//a54Tj2Q+HKL6ah5RyX0gnSQblZJbBpYyctgZ+sS4/Dattgey\r\nKqsL9kpaODo/SazcOM+cSQxUKUUzl+ipTB10Br6ZIOr5rf74EnmT/wkTbzjo\r\ng/S43QCP0NinP3tsr64EgnD3COx6qptvvZs3HaZOXMF9zglUuR7zBB0dfpZF\r\nThRovfUQJo5JB2zQKlcMTnmp0y0pK/ROeJ5aDjTgZMa+0ERJaGWtqomTvUCo\r\nmDR0o8EyH96ElgPPc3OcC/tCT05wZWpxMlUnwnXHLdI51/2ZIHgvVxdIgZgy\r\nrgEDNhrax4QNl+9HPCm8K8USxXg/2ToIS7Vwqdkzix2f25gEn/FypXaPm8Pt\r\nxZwpOoqgdpPA0TfYlBq9e5E64fRHS+utoceCK+aiEbpFk/juO3HshRwO8hNy\r\nmuNCRRMJ3E5fEj1tjZDW+Gw2Wd404qh2NtWOLHnG68IxTDumrlHw6zhCQJJL\r\nTWEhrDt0PxhrIvTZHPjow1bgBN+Dyk1YDRwzQqxj4apOWR4+5jSwqxFOFpUf\r\nT0W/Lfmhz2hLoZ5pG8IYtTS6T6UYST56iXCUzTGOD35kD5H2pjq5DBIiggaI\r\nXjOTGqd+lTtFhc5G+IfLR4L/TO852SrwAMcPbP4NkSybVwdUAEpU3ncvW7/O\r\naCywndKWf6E7anSm4iIEGq2QqNzHiCEi8xs=\r\n=F/9M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.4.1_1683145151028_0.6891462588670776"},"_hasShrinkwrap":false},"4.4.2":{"name":"@rest-hooks/core","version":"4.4.2","description":"Normalized Asynchronous data framework. Protocol and View agnostic.","sideEffects":false,"main":"dist/index.js","react-native":"legacy/index.js","module":"legacy/index.js","unpkg":"dist/index.umd.min.js","types":"lib/index.d.ts","typesVersions":{">=4.0":{"":["lib/index.d.ts"],"next":["lib/next/index.d.ts"],"*":["lib/index.d.ts"]},">=3.4":{"":["ts3.4/index.d.ts"],"next":["ts3.4/next/index.d.ts"],"*":["ts3.4/index.d.ts"]}},"exports":{".":{"module":"./lib/index.js","import":"./node.mjs","require":"./dist/index.js","default":"./lib/index.js"},"./next":{"types":"./lib/next/index.d.ts","require":"./dist/next.js","default":"./lib/next/index.js"},"./package.json":"./package.json"},"type":"module","engines":{"node":"^12.17 || ^13.7 || >=14"},"scripts":{"build:lib":"NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib","build:legacy:lib":"NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy","build:js:node":"BROWSERSLIST_ENV=node12 yarn g:rollup","build:js:browser":"BROWSERSLIST_ENV=legacy yarn g:rollup","build:bundle":"yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json","build:clean":"yarn g:clean ./index.d.ts","build:legacy-types":"yarn g:downtypes lib ts3.4","build":"run build:lib && run build:legacy:lib && run build:bundle","dev":"run build:lib -w","prepare":"run build:lib","prepack":"run prepare && run build:bundle && run build:legacy:lib"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@babel/runtime":"^7.17.0","@rest-hooks/normalizr":"^11.0.1","flux-standard-action":"^2.1.1"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"dc77a03242b1a6d75353976e0610cfb19bb878c5","_id":"@rest-hooks/core@4.4.2","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-MFUN6sinLiJOCV5VnxyS7AlQQU8CytGeZ/c9s1CJb9HGUKHYaZRlXCVmqRMIzNnKz9HCKaCa4/jipuuLF4wkFQ==","shasum":"408e25dac8794f8322c3ad95ae7b7c8637778ae0","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.4.2.tgz","fileCount":309,"unpackedSize":1080123,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+Ye+D0SWw6h2vVRxmeH3M7Ai0ZnIHIXPyDs9tDMWegAiApjIrHr1pPLsEKourHF66JCldSnaAeDtGaaAizz4+LeQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.4.2_1686754378441_0.9474089163697539"},"_hasShrinkwrap":false},"4.4.3":{"name":"@rest-hooks/core","version":"4.4.3","description":"High performance reactive framework for async data.","sideEffects":false,"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","typesVersions":{"*":{"":["index.d.ts"],"next":["next.d.ts"],"*":["index.d.ts"]}},"exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./next":{"module":"./next.js","import":"./next.js","require":"./next.cjs","default":"./next.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@data-client/core":"^0.1.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"4aa1325213434e9ec5d8df272e8e6720d855491a","_id":"@rest-hooks/core@4.4.3","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-5DLSgJC3BDOspecq6zD8U4Qq0dI0ZZRY5xala7LnevPRSDMk1hbku7Hj+K4TeGmimvK3JlT6beFHf2MjM85Hfw==","shasum":"8f62c5e83fa7496c31a1f053de0b713e9b20bf30","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-4.4.3.tgz","fileCount":11,"unpackedSize":24354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdIWXCeaJLAP8JiR0KfiIsCwHxi3LeY4mf3ExlxufteAiBtniSlugdCrE8jsVNQOmxe7tgazRqW2N72X4XS3m/+nQ=="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_4.4.3_1688341737063_0.33479982835860866"},"_hasShrinkwrap":false},"5.0.0":{"name":"@rest-hooks/core","version":"5.0.0","description":"High performance reactive framework for async data.","sideEffects":false,"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","typesVersions":{"*":{"":["index.d.ts"],"next":["next.d.ts"],"*":["index.d.ts"]}},"exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./next":{"module":"./next.js","import":"./next.js","require":"./next.cjs","default":"./next.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@data-client/core":"^0.2.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"c05c4066d1f565fb56735eaafceb5a0bd6daafa3","_id":"@rest-hooks/core@5.0.0","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-UNRsNlnU1rzfHwq9P9P1v9FsndSG2nf126sFWWmFyYV+ryYVluScz3hFARSylFpBTIIdUcmsYbOukVLaeftyew==","shasum":"3983dd189f3dcf773bd4755baee2c5d95b844fbe","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-5.0.0.tgz","fileCount":11,"unpackedSize":24354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnvRIVrjO6/YPJcaY+FVPTh1FkeQrsBnLVsX97xgzmgQIgEufhfVPQ3MVsrdrI6zZEROw/4mgJC6I6n5SVNfzEtIY="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_5.0.0_1688510303433_0.7835866483163163"},"_hasShrinkwrap":false},"5.1.0":{"name":"@rest-hooks/core","version":"5.1.0","description":"High performance reactive framework for async data.","sideEffects":false,"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","typesVersions":{"*":{"":["index.d.ts"],"next":["next.d.ts"],"*":["index.d.ts"]}},"exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./next":{"module":"./next.js","import":"./next.js","require":"./next.cjs","default":"./next.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@data-client/core":"^0.3.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"b9b3cf7a25db881c90330faeba597dc071feeef8","_id":"@rest-hooks/core@5.1.0","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-MGi7m03Tlb97Hgx83ZdAsZYCi9H+PSyJDEJ5gPeDFrxp86SonaM3uuH95zePeULPl4vFRvnSRjWMeYUivM8F3Q==","shasum":"d0d11f24905ed8a8b4d15bbbb66edc3ad496494c","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-5.1.0.tgz","fileCount":11,"unpackedSize":24372,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIN1JPITSQSIhwvGfki+fVtxL18KrVtZCj0ZLhdFNE1wIgC0UjThJpB80+tk7W5/JhhKq1ac7/rmsLQ55e4isF6lo="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_5.1.0_1691712841791_0.7701843092344629"},"_hasShrinkwrap":false},"5.2.0":{"name":"@rest-hooks/core","version":"5.2.0","description":"High performance reactive framework for async data.","sideEffects":false,"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","typesVersions":{"*":{"":["index.d.ts"],"next":["next.d.ts"],"*":["index.d.ts"]}},"exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./next":{"module":"./next.js","import":"./next.js","require":"./next.cjs","default":"./next.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@data-client/core":"^0.4.0"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"3356138f6b9daf20510e1ad3da822f4a1dc57c8b","_id":"@rest-hooks/core@5.2.0","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-87XTOy+jBat9nk946ieUh+x3Yq66BJm9zDkgJKTvLrHt2DAjwLQz2pZnnZ4ht0y70D7JAYkNtHAu/KMPo10Rpw==","shasum":"339fe769b34192ac5f494abfa48566e7db71edad","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-5.2.0.tgz","fileCount":11,"unpackedSize":24372,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvE5Pbo7VD0dMirXdGJSaSvb4fltnim0S28xJlPG+I/QIgaRBAOFSz5ojB9jKF2kkwiNAcR3MXC7ZLQGYPh01b+Ro="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_5.2.0_1691903164413_0.3624370260177856"},"_hasShrinkwrap":false},"5.2.1":{"name":"@rest-hooks/core","version":"5.2.1","description":"High performance reactive framework for async data.","sideEffects":false,"main":"index.cjs","module":"index.js","types":"index.d.ts","type":"module","typesVersions":{"*":{"":["index.d.ts"],"next":["next.d.ts"],"*":["index.d.ts"]}},"exports":{".":{"module":"./index.js","import":"./index.js","require":"./index.cjs","default":"./index.js"},"./next":{"module":"./next.js","import":"./next.js","require":"./next.cjs","default":"./next.js"},"./package.json":"./package.json"},"engines":{"node":"^12.17 || ^13.7 || >=14"},"keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"license":"Apache-2.0","homepage":"https://resthooks.io","repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"dependencies":{"@data-client/core":"^0.4.3"},"devDependencies":{"@anansi/browserslist-config":"^1.4.2","@types/node":"^20.0.0"},"gitHead":"84c1ff89c45790f77d265e415a0437b55032c58d","_id":"@rest-hooks/core@5.2.1","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-5IQvpVJi/Lbo6u5NidAOyqwJE5GBxGGkFsNXac8NJ7GkHJRarDnt0S+UhrsMfAvypsXh4AmfIwIL+gwi20yTKQ==","shasum":"083b7b74e9e1d8a4d5ef486b6bd899d259e857f1","tarball":"https://registry.npmjs.org/@rest-hooks/core/-/core-5.2.1.tgz","fileCount":11,"unpackedSize":24372,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHdqqSuWpPs1d9MCs1PP4K1+8gzv6illmkam588TVTYmAiEAllWNvcXXDVXqcmRUnMrl8zAreGf03B93ZcLnvDXcTO8="}]},"_npmUser":{"name":"ntucker","email":"me@ntucker.me"},"directories":{},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_5.2.1_1692913588228_0.8478617243142135"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-12T22:43:26.452Z","1.0.0-beta.1":"2020-05-12T22:43:26.880Z","modified":"2023-08-24T21:46:28.643Z","1.0.0-beta.2":"2020-05-13T01:27:10.967Z","1.0.0-beta.3":"2020-05-13T13:40:46.103Z","1.0.0-beta.4":"2020-05-13T18:37:58.285Z","1.0.0-beta.5":"2020-05-14T02:48:26.154Z","1.0.0-beta.6":"2020-05-19T17:25:00.515Z","1.0.0-beta.7":"2020-05-19T19:12:21.209Z","1.0.0-beta.8":"2020-05-19T22:19:24.849Z","1.0.0-beta.9":"2020-05-20T21:33:56.254Z","1.0.0-beta.10":"2020-05-20T21:48:20.814Z","1.0.0-beta.11":"2020-05-20T22:03:38.619Z","1.0.0-beta.12":"2020-06-06T23:02:06.688Z","1.0.0-beta.13":"2020-06-08T21:15:47.983Z","1.0.0-beta.14":"2020-06-09T07:43:22.596Z","1.0.0-beta.15":"2020-06-13T20:13:13.547Z","1.0.0-gamma.0":"2020-06-13T22:41:13.555Z","1.0.0-delta.0":"2020-07-08T20:53:12.050Z","1.0.0-h.0":"2020-07-13T19:32:56.416Z","1.0.0-i.0":"2020-07-14T22:03:26.385Z","1.0.0-i.1":"2020-07-14T23:09:14.152Z","1.0.0-i.2":"2020-07-20T22:37:00.977Z","1.0.0-i.3":"2020-07-21T02:26:47.157Z","1.0.0-i.4":"2020-07-22T21:58:10.675Z","1.0.0-j.0":"2020-07-27T17:20:55.123Z","1.0.0-j.1":"2020-07-27T19:31:51.555Z","1.0.0-j.2":"2020-07-27T20:24:19.788Z","1.0.0-j.3":"2020-07-31T21:03:47.159Z","1.0.0-j.4":"2020-08-04T02:23:57.479Z","1.0.0-j.5":"2020-08-08T02:38:19.890Z","1.0.0-j.6":"2020-08-09T04:14:11.981Z","1.0.0-j.7":"2020-08-09T06:00:48.011Z","1.0.0-k.0":"2020-08-09T23:27:10.608Z","1.0.0-k.1":"2020-08-12T22:26:30.097Z","1.0.0-k.2":"2020-08-13T16:18:53.804Z","1.0.0-k.3":"2020-09-08T04:48:15.057Z","1.0.0-k.4":"2020-12-08T07:04:39.850Z","1.0.0-k.5":"2021-01-06T03:04:52.958Z","1.0.0-rc.0":"2021-01-15T01:24:15.019Z","1.0.0-rc.1":"2021-01-19T04:55:09.598Z","1.0.0":"2021-01-19T17:24:54.571Z","1.0.1":"2021-01-24T23:03:37.640Z","1.0.2":"2021-01-30T15:53:16.004Z","1.0.3":"2021-02-04T16:07:10.003Z","1.0.4":"2021-02-24T16:37:03.447Z","1.0.5":"2021-02-28T02:33:01.997Z","1.0.6":"2021-03-01T22:19:43.385Z","1.0.7":"2021-03-03T21:52:44.066Z","1.0.8":"2021-03-08T23:56:23.809Z","1.0.9":"2021-03-14T03:16:36.040Z","1.0.10":"2021-03-24T22:10:24.103Z","1.0.11":"2021-03-26T08:31:45.892Z","1.0.12":"2021-04-04T00:29:57.540Z","1.0.13-beta.0":"2021-04-05T03:45:14.515Z","1.0.13":"2021-04-12T13:17:42.864Z","1.0.14":"2021-04-12T15:30:14.360Z","1.0.15":"2021-04-12T18:38:45.267Z","1.0.16":"2021-04-13T16:50:33.885Z","1.0.17-beta.0":"2021-04-13T20:29:25.518Z","1.1.0":"2021-04-24T21:31:13.480Z","1.1.1":"2021-04-25T05:05:33.256Z","1.1.2":"2021-04-26T21:54:21.335Z","1.2.0":"2021-05-24T04:09:56.712Z","1.2.1":"2021-05-24T20:17:34.230Z","1.3.0":"2021-05-30T05:34:31.247Z","1.4.0":"2021-06-02T23:36:31.975Z","1.4.1":"2021-06-09T20:58:39.022Z","1.5.0":"2021-06-13T01:09:02.753Z","1.5.1":"2021-06-16T02:32:44.222Z","1.5.2":"2021-06-19T18:34:16.024Z","2.0.0-beta.0":"2021-06-30T16:20:35.402Z","2.0.0-beta.1":"2021-06-30T20:46:52.101Z","1.5.3":"2021-07-06T21:47:51.127Z","2.0.0-beta.2":"2021-07-12T07:07:24.945Z","2.0.0-beta.3":"2021-08-21T04:36:11.507Z","2.0.0-beta.4":"2021-08-22T07:30:09.799Z","2.0.0-beta.5":"2021-08-25T17:11:38.292Z","2.0.0-beta.6":"2021-09-06T01:34:29.326Z","1.5.4":"2021-09-08T03:57:08.695Z","2.0.0":"2021-09-08T04:08:18.092Z","2.0.1":"2021-09-14T18:55:04.383Z","2.1.0":"2021-09-19T23:35:24.948Z","2.2.0":"2021-09-29T03:59:24.287Z","2.2.1":"2021-09-29T19:59:34.414Z","2.2.2":"2021-10-11T03:31:41.828Z","3.0.0":"2021-10-17T06:24:51.973Z","3.0.1":"2021-10-18T04:13:04.605Z","3.0.2":"2021-10-20T00:39:22.555Z","3.1.0-beta.0":"2021-10-24T22:03:13.561Z","3.1.0-beta.1":"2021-10-30T00:02:01.090Z","3.1.0-beta.2":"2021-11-26T22:38:21.701Z","3.1.0-beta.3":"2022-01-23T23:45:59.899Z","3.1.0-beta.4":"2022-01-31T06:46:11.526Z","3.1.0-beta.5":"2022-02-15T03:39:44.802Z","3.1.0-beta.6":"2022-02-26T00:14:38.393Z","3.1.0-beta.7":"2022-03-01T03:49:25.908Z","3.1.0-beta.8":"2022-03-08T19:03:44.389Z","3.1.0-beta.9":"2022-03-10T03:52:40.279Z","3.1.0":"2022-03-17T07:21:20.153Z","3.1.1":"2022-04-01T23:36:49.566Z","3.1.2":"2022-04-02T20:25:35.376Z","3.2.0":"2022-04-08T00:15:49.752Z","3.2.1":"2022-04-11T21:23:17.993Z","1.5.5":"2022-04-16T17:41:10.365Z","3.2.2":"2022-04-16T17:53:00.223Z","3.2.3":"2022-04-30T17:57:31.575Z","3.2.4":"2022-05-30T20:14:38.714Z","3.2.5-beta.0":"2022-06-03T21:16:22.479Z","3.2.5":"2022-07-01T14:22:07.870Z","3.2.6":"2022-07-01T16:30:41.979Z","3.2.7":"2022-07-20T15:52:10.702Z","3.2.8":"2022-07-23T14:56:56.582Z","3.2.9":"2022-07-26T18:16:48.367Z","3.2.10":"2022-09-04T04:59:18.625Z","3.2.11":"2022-09-10T23:42:09.718Z","3.3.0-beta.0":"2022-09-16T15:57:21.391Z","3.3.0-beta.1":"2022-09-17T21:15:47.348Z","3.3.0-beta.2":"2022-09-19T19:30:20.051Z","3.3.0":"2022-09-19T19:41:40.936Z","3.3.1":"2022-10-01T01:24:22.959Z","3.3.2":"2022-10-28T03:30:54.252Z","3.4.0-beta.0":"2022-11-03T21:27:10.043Z","3.4.0-beta.1":"2022-11-03T21:34:14.351Z","3.4.0-beta.2":"2022-11-03T23:07:54.715Z","3.4.0-beta.3":"2022-11-03T23:10:44.606Z","3.4.0-beta.4":"2022-11-03T23:13:13.144Z","3.4.0-beta.5":"2022-11-04T01:24:46.713Z","3.4.0-beta.6":"2022-11-05T19:55:23.829Z","3.4.0":"2022-11-07T01:06:08.700Z","4.0.0":"2022-11-13T06:13:58.985Z","4.0.1":"2022-11-13T17:22:17.901Z","4.0.2":"2022-11-16T06:46:54.921Z","4.1.0-beta.0":"2022-11-21T01:24:59.373Z","4.1.0":"2022-11-22T21:49:59.495Z","4.1.1":"2022-12-05T02:48:37.854Z","4.1.2":"2022-12-06T21:45:19.504Z","4.1.3":"2022-12-23T16:21:50.887Z","4.1.4":"2023-01-13T01:41:31.419Z","4.1.5":"2023-01-14T15:05:46.304Z","4.1.6":"2023-01-23T15:24:03.790Z","4.2.0":"2023-01-29T03:48:17.313Z","4.2.1":"2023-01-30T23:18:12.531Z","4.2.2":"2023-02-11T18:12:14.084Z","4.2.3":"2023-02-14T03:15:32.864Z","4.2.4":"2023-02-21T17:27:54.293Z","4.2.5":"2023-03-02T15:47:41.809Z","4.2.6":"2023-03-12T05:44:30.331Z","4.2.7":"2023-03-15T20:06:55.915Z","4.2.8":"2023-03-19T18:57:58.992Z","4.2.9":"2023-03-21T20:19:02.270Z","4.2.10":"2023-03-28T22:53:18.610Z","4.2.11":"2023-03-30T01:28:33.423Z","4.3.0":"2023-03-30T23:18:35.401Z","4.3.1":"2023-03-31T02:51:48.471Z","4.3.2":"2023-04-04T04:52:36.667Z","4.4.0-next.0":"2023-04-26T21:57:23.040Z","4.4.0":"2023-05-02T22:40:35.131Z","4.4.1":"2023-05-03T20:19:11.309Z","4.4.2":"2023-06-14T14:52:58.694Z","4.4.3":"2023-07-02T23:48:57.283Z","5.0.0":"2023-07-04T22:38:23.616Z","5.1.0":"2023-08-11T00:14:02.005Z","5.2.0":"2023-08-13T05:06:04.587Z","5.2.1":"2023-08-24T21:46:28.435Z"},"maintainers":[{"name":"ntucker","email":"me@ntucker.me"},{"name":"ljharb","email":"ljharb@gmail.com"}],"description":"High performance reactive framework for async data.","homepage":"https://resthooks.io","keywords":["data","cache","normalizr","normalization","flux","fetch","hook","networking","async","typescript","async","data fetching","data cache","api client","api","normalized cache","swr","GraphQL","query","ios","android","web","middleware","websocket","sse","declarative","scalable"],"repository":{"type":"git","url":"git+ssh://git@github.com/data-client/rest-hooks.git","directory":"packages/core"},"author":{"name":"Nathaniel Tucker","email":"me@ntucker.me","url":"https://github.com/ntucker"},"bugs":{"url":"https://github.com/data-client/rest-hooks/issues"},"license":"Apache-2.0","readme":"# [![🛌🎣 Rest hooks](../../packages/rest-hooks/rest_hooks_logo_and_text.svg?sanitize=true)](https://resthooks.io)\n\n[![CircleCI](https://circleci.com/gh/data-client/rest-hooks/tree/master.svg?style=shield)](https://circleci.com/gh/data-client/rest-hooks)\n[![Coverage Status](https://img.shields.io/codecov/c/gh/data-client/rest-hooks/master.svg?style=flat-square)](https://app.codecov.io/gh/data-client/rest-hooks?branch=master)\n[![npm downloads](https://img.shields.io/npm/dt/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@rest-hooks/core?style=flat-square)](https://bundlephobia.com/result?p=@rest-hooks/core)\n[![npm version](https://img.shields.io/npm/v/@rest-hooks/core.svg?style=flat-square)](https://www.npmjs.com/package/@rest-hooks/core)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\nReducer/flux normalized, framework-agnostic data store. Includes managers/middleware, global referential equality guarantees,\nautomatic expiry policies, data normalization. Consumes [TypeScript Standard Endpoints](https://www.npmjs.com/package/@rest-hooks/endpoint)\n\n<div align=\"center\">\n\n**[📖Read The Docs](https://resthooks.io/docs)** &nbsp;|&nbsp; [🏁Getting Started](https://resthooks.io/docs/getting-started/installation) &nbsp;|&nbsp;\n[🎮Todo Demo](https://stackblitz.com/github/data-client/rest-hooks/tree/rest-hooks-site/examples/todo-app?file=src%2Fpages%2FHome%2FTodoList.tsx) &nbsp;|&nbsp;\n[🎮Github Demo](https://stackblitz.com/github/data-client/rest-hooks/tree/rest-hooks-site/examples/github-app?file=src%2Fpages%2FIssueList.tsx)\n\n</div>\n\n### Framework Implementations\n\n- [React](https://www.npmjs.com/package/@rest-hooks/react)\n- [React-Redux](https://www.npmjs.com/package/@rest-hooks/redux)\n\n### Sample React Hook suspense implementation\n\n```typescript\nfunction useSuspense(endpoint, ...args)\n  const state = useCacheState();\n  const controller = useController();\n\n  const key = args[0] !== null ? endpoint.key(...args) : '';\n  const cacheResults = key && state.results[key];\n  const meta = state.meta[key];\n\n  // Compute denormalized value\n  const { data, expiryStatus, expiresAt } = useMemo(() => {\n    return controller.getResponse(endpoint, ...args, state);\n  }, [\n    cacheResults,\n    state.indexes,\n    state.entities,\n    state.entityMeta,\n    meta,\n    key,\n  ]);\n\n  const error = controller.getError(endpoint, ...args, state);\n\n  // If we are hard invalid we must fetch regardless of triggering or staleness\n  const forceFetch = expiryStatus === ExpiryStatus.Invalid;\n\n  const maybePromise = useMemo(() => {\n    // null params mean don't do anything\n    if ((Date.now() <= expiresAt && !forceFetch) || !key) return;\n\n    return controller.fetch(endpoint, ...args);\n    // we need to check against serialized params, since params can change frequently\n  }, [expiresAt, controller, key, forceFetch, state.lastReset]);\n\n  // fully \"valid\" data will not suspend even if it is not fresh\n  if (expiryStatus !== ExpiryStatus.Valid && maybePromise) {\n    throw maybePromise;\n  }\n\n  if (error) throw error;\n\n  return data;\n}\n```\n","readmeFilename":"README.md"}